merged master
authordaniel <daniel.kinzler@wikimedia.de>
Tue, 29 May 2012 15:01:13 +0000 (17:01 +0200)
committerdaniel <daniel.kinzler@wikimedia.de>
Tue, 29 May 2012 15:01:13 +0000 (17:01 +0200)
396 files changed:
CREDITS
RELEASE-NOTES-1.20
api.php
api.php5
docs/export-0.1.xsd
docs/export-0.2.xsd
docs/export-0.3.xsd
docs/export-0.4.xsd
docs/export-0.5.xsd
docs/export-0.6.xsd
docs/export-0.7.xsd [new file with mode: 0644]
img_auth.php
img_auth.php5
includes/Action.php
includes/AjaxDispatcher.php
includes/AjaxResponse.php
includes/Article.php
includes/AuthPlugin.php
includes/AutoLoader.php
includes/Autopromote.php
includes/BacklinkCache.php
includes/Block.php
includes/CacheHelper.php
includes/Category.php
includes/CategoryPage.php
includes/CategoryViewer.php
includes/Categoryfinder.php
includes/Cdb.php
includes/Cdb_PHP.php
includes/ChangeTags.php
includes/ChangesFeed.php
includes/ChangesList.php
includes/Collation.php
includes/ConfEditor.php
includes/Cookie.php
includes/CryptRand.php
includes/DataUpdate.php
includes/DefaultSettings.php
includes/DeferredUpdates.php
includes/Defines.php
includes/DeprecatedGlobal.php
includes/DeviceDetection.php
includes/EditPage.php
includes/Exception.php
includes/ExternalStore.php
includes/ExternalStoreDB.php
includes/ExternalStoreHttp.php
includes/ExternalUser.php
includes/FakeTitle.php
includes/GlobalFunctions.php
includes/HTMLForm.php
includes/HttpFunctions.php
includes/IP.php
includes/ImageGallery.php
includes/ImagePage.php
includes/MagicWord.php
includes/OutputPage.php
includes/Preferences.php
includes/QueryPage.php
includes/Revision.php
includes/Skin.php
includes/SkinLegacy.php
includes/SkinTemplate.php
includes/SpecialPage.php
includes/SqlDataUpdate.php
includes/Title.php
includes/User.php
includes/WebRequest.php
includes/WikiPage.php
includes/actions/ViewAction.php
includes/api/ApiBlock.php
includes/api/ApiEditPage.php
includes/api/ApiFormatXml.php
includes/api/ApiMain.php
includes/api/ApiPageSet.php
includes/api/ApiProtect.php
includes/api/ApiQueryAllLinks.php
includes/api/ApiQueryAllUsers.php
includes/api/ApiQueryBacklinks.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQueryCategoryMembers.php
includes/api/ApiQueryDeletedrevs.php
includes/api/ApiQueryIWBacklinks.php
includes/api/ApiQueryLangBacklinks.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiQueryUsers.php
includes/api/ApiQueryWatchlistRaw.php
includes/cache/GenderCache.php
includes/cache/MessageCache.php
includes/debug/Debug.php
includes/filerepo/FSRepo.php
includes/filerepo/FileRepo.php
includes/filerepo/ForeignAPIRepo.php
includes/filerepo/ForeignDBRepo.php
includes/filerepo/ForeignDBViaLBRepo.php
includes/filerepo/NullRepo.php
includes/filerepo/RepoGroup.php
includes/filerepo/backend/FSFile.php
includes/filerepo/backend/FSFileBackend.php
includes/filerepo/backend/FileBackend.php
includes/filerepo/backend/FileBackendGroup.php
includes/filerepo/backend/FileBackendMultiWrite.php
includes/filerepo/backend/FileBackendStore.php
includes/filerepo/backend/FileOp.php
includes/filerepo/backend/FileOpBatch.php
includes/filerepo/backend/SwiftFileBackend.php
includes/filerepo/backend/filejournal/DBFileJournal.php
includes/filerepo/backend/filejournal/FileJournal.php
includes/filerepo/backend/lockmanager/DBLockManager.php
includes/filerepo/backend/lockmanager/FSLockManager.php
includes/filerepo/backend/lockmanager/LSLockManager.php
includes/filerepo/backend/lockmanager/LockManager.php
includes/filerepo/backend/lockmanager/LockManagerGroup.php
includes/filerepo/file/File.php
includes/filerepo/file/ForeignAPIFile.php
includes/filerepo/file/ForeignDBFile.php
includes/filerepo/file/LocalFile.php
includes/filerepo/file/OldLocalFile.php
includes/filerepo/file/UnregisteredLocalFile.php
includes/installer/Installer.php
includes/job/JobQueue.php
includes/json/FormatJson.php
includes/objectcache/BagOStuff.php
includes/objectcache/MemcachedBagOStuff.php
includes/objectcache/MemcachedPeclBagOStuff.php
includes/objectcache/MemcachedPhpBagOStuff.php
includes/objectcache/SqlBagOStuff.php
includes/parser/Parser.php
includes/parser/Preprocessor.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/resourceloader/ResourceLoaderWikiModule.php
includes/specials/SpecialMostcategories.php
includes/specials/SpecialMostlinked.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialShortpages.php
includes/specials/SpecialTags.php
includes/specials/SpecialUnwatchedpages.php
includes/specials/SpecialWatchlist.php
includes/upload/UploadBase.php
includes/zhtable/.gitignore [new file with mode: 0644]
includes/zhtable/Makefile.py [changed mode: 0644->0755]
index.php5
languages/Language.php
languages/Names.php
languages/messages/MessagesAeb.php
languages/messages/MessagesAf.php
languages/messages/MessagesAln.php
languages/messages/MessagesAm.php
languages/messages/MessagesAn.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesArn.php
languages/messages/MessagesAry.php
languages/messages/MessagesArz.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAvk.php
languages/messages/MessagesAz.php
languages/messages/MessagesBa.php
languages/messages/MessagesBar.php
languages/messages/MessagesBcc.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBn.php
languages/messages/MessagesBpy.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesCa.php
languages/messages/MessagesCdo.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCrh_cyrl.php
languages/messages/MessagesCrh_latn.php
languages/messages/MessagesCs.php
languages/messages/MessagesCsb.php
languages/messages/MessagesCy.php
languages/messages/MessagesDa.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEl.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesEu.php
languages/messages/MessagesExt.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFit.php [new file with mode: 0644]
languages/messages/MessagesFo.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrp.php
languages/messages/MessagesFrr.php
languages/messages/MessagesFur.php
languages/messages/MessagesFy.php
languages/messages/MessagesGa.php
languages/messages/MessagesGan_hans.php
languages/messages/MessagesGan_hant.php
languages/messages/MessagesGd.php
languages/messages/MessagesGl.php
languages/messages/MessagesGrc.php
languages/messages/MessagesGsw.php
languages/messages/MessagesGu.php
languages/messages/MessagesGv.php
languages/messages/MessagesHak.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHif_latn.php
languages/messages/MessagesHr.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIe.php
languages/messages/MessagesIlo.php
languages/messages/MessagesInh.php
languages/messages/MessagesIo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesJv.php
languages/messages/MessagesKa.php
languages/messages/MessagesKaa.php
languages/messages/MessagesKab.php
languages/messages/MessagesKhw.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKk_arab.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKk_latn.php
languages/messages/MessagesKm.php
languages/messages/MessagesKn.php
languages/messages/MessagesKo.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKsh.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesKv.php
languages/messages/MessagesKw.php
languages/messages/MessagesKy.php
languages/messages/MessagesLa.php
languages/messages/MessagesLad.php
languages/messages/MessagesLb.php
languages/messages/MessagesLez.php
languages/messages/MessagesLfn.php
languages/messages/MessagesLg.php
languages/messages/MessagesLi.php
languages/messages/MessagesLij.php
languages/messages/MessagesLiv.php
languages/messages/MessagesLmo.php
languages/messages/MessagesLo.php
languages/messages/MessagesLt.php
languages/messages/MessagesLus.php
languages/messages/MessagesLv.php
languages/messages/MessagesLzh.php
languages/messages/MessagesLzz.php
languages/messages/MessagesMai.php
languages/messages/MessagesMap_bms.php
languages/messages/MessagesMdf.php
languages/messages/MessagesMg.php
languages/messages/MessagesMhr.php
languages/messages/MessagesMin.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesMy.php
languages/messages/MessagesMyv.php
languages/messages/MessagesMzn.php
languages/messages/MessagesNah.php
languages/messages/MessagesNan.php
languages/messages/MessagesNb.php
languages/messages/MessagesNds.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNe.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesNo.php
languages/messages/MessagesNso.php
languages/messages/MessagesOc.php
languages/messages/MessagesOr.php
languages/messages/MessagesOs.php
languages/messages/MessagesPa.php
languages/messages/MessagesPam.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPnb.php
languages/messages/MessagesPrg.php
languages/messages/MessagesPs.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesQug.php
languages/messages/MessagesRm.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSa.php
languages/messages/MessagesSah.php
languages/messages/MessagesSat.php
languages/messages/MessagesScn.php
languages/messages/MessagesSco.php
languages/messages/MessagesSdc.php
languages/messages/MessagesSe.php
languages/messages/MessagesSei.php
languages/messages/MessagesSgs.php
languages/messages/MessagesSh.php
languages/messages/MessagesShi.php
languages/messages/MessagesSi.php
languages/messages/MessagesSk.php
languages/messages/MessagesSl.php
languages/messages/MessagesSli.php
languages/messages/MessagesSo.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesStq.php
languages/messages/MessagesSu.php
languages/messages/MessagesSv.php
languages/messages/MessagesSw.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTcy.php
languages/messages/MessagesTe.php
languages/messages/MessagesTg_cyrl.php
languages/messages/MessagesTg_latn.php
languages/messages/MessagesTh.php
languages/messages/MessagesTk.php
languages/messages/MessagesTl.php
languages/messages/MessagesTly.php
languages/messages/MessagesTr.php
languages/messages/MessagesTs.php
languages/messages/MessagesTt_cyrl.php
languages/messages/MessagesTt_latn.php
languages/messages/MessagesTyv.php
languages/messages/MessagesUg_arab.php
languages/messages/MessagesUk.php
languages/messages/MessagesUr.php
languages/messages/MessagesUz.php
languages/messages/MessagesVec.php
languages/messages/MessagesVep.php
languages/messages/MessagesVi.php
languages/messages/MessagesVo.php
languages/messages/MessagesVro.php
languages/messages/MessagesWar.php
languages/messages/MessagesWo.php
languages/messages/MessagesWuu.php
languages/messages/MessagesXal.php
languages/messages/MessagesXmf.php
languages/messages/MessagesYi.php
languages/messages/MessagesYo.php
languages/messages/MessagesYue.php
languages/messages/MessagesZea.php
languages/messages/MessagesZh.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
load.php
load.php5
maintenance/archives/patch-filejournal.sql
maintenance/language/messageTypes.inc
maintenance/language/messages.inc
maintenance/populateImageSha1.php
maintenance/populateRevisionSha1.php
maintenance/syncFileBackend.php [new file with mode: 0644]
opensearch_desc.php
opensearch_desc.php5
redirect.php
redirect.php5
resources/jquery/jquery.byteLimit.js
resources/mediawiki/mediawiki.util.js
tests/parser/parserTests.txt
tests/phpunit/includes/IPTest.php
tests/phpunit/includes/WebRequestTest.php
tests/phpunit/includes/WikiPageTest.php
tests/phpunit/includes/filerepo/FileBackendTest.php
thumb.php
thumb.php5
thumb_handler.php
thumb_handler.php5

diff --git a/CREDITS b/CREDITS
index dcd4a43..89154a3 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -109,6 +109,7 @@ following names for their contribution to the product.
 * David Baumgarten
 * Denny Vrandecic
 * Edward Z. Yang
+* Elvis Stansvik
 * Erwin Dokter
 * FunPika
 * fomafix
index 2df3043..b5e7cce 100644 (file)
@@ -62,6 +62,9 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * QUnit.newMwEnvironment now supports passing a custom setup and/or teardown function.
   Arguments signature has changed. First arguments is now an options object of which
   'config' can be a property. Previously 'config' itself was the first and only argument.
+* New getCreator and getOldestRevision methods added to WikiPage class
+* (bug 4220) the XML dump format schema now have unique identity constraints
+  for page and revision identifiers. Patch by Elvis Stansvik.
 
 === Bug fixes in 1.20 ===
 * (bug 30245) Use the correct way to construct a log page title.
@@ -109,6 +112,8 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 30410) Removed deprecated $wgFilterCallback and the 'filtered' API error.
 * (bug 32604) Some messages needs escaping of wikitext inside username
 * (bug 36537) Rename wfArrayToCGI to wfArrayToCgi for consistency with wfCgiToArray.
+* (bug 25946) The message on the top of Special:RecentChanges is now displayed
+  in user language instead of content language
 
 === API changes in 1.20 ===
 * (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
@@ -124,6 +129,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 34927) Output media_type for list=filearchive
 * (bug 28814) add properties to output of action=parse
 * (bug 33224) add variants of content language to meta=siteinfo
+* (bug 36761) "Mark pages as visited" now submits previously established filter options
 
 === Languages updated in 1.20 ===
 
@@ -131,6 +137,7 @@ MediaWiki supports over 350 languages. Many localisations are updated
 regularly. Below only new and removed languages are listed, as well as
 changes to languages because of Bugzilla reports.
 
+* Tornedalen Finnish (fit) added.
 * Mizo (lus) added.
 * Santali (sat) added.
 * (bug 34192) Namespace gender aliases for Albanian languages (sq & aln).
diff --git a/api.php b/api.php
index 3691ac6..1cd5497 100644 (file)
--- a/api.php
+++ b/api.php
@@ -1,9 +1,16 @@
 <?php
-
 /**
- * API for MediaWiki 1.8+
+ * This file is the entry point for all API queries.
+ *
+ * It begins by checking whether the API is enabled on this wiki; if not,
+ * it informs the user that s/he should set $wgEnableAPI to true and exits.
+ * Otherwise, it constructs a new ApiMain using the parameter passed to it
+ * as an argument in the URL ('?action=') and with write-enabled set to the
+ * value of $wgEnableWriteAPI as specified in LocalSettings.php.
+ * It then invokes "execute()" on the ApiMain object instance, which
+ * produces output in the format sepecified in the URL.
  *
- * Copyright (C) 2006 Yuri Astrakhan <Firstname><Lastname>@gmail.com
+ * Copyright © 2006 Yuri Astrakhan <Firstname><Lastname>@gmail.com
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * @file
  */
 
-/**
- * This file is the entry point for all API queries. It begins by checking
- * whether the API is enabled on this wiki; if not, it informs the user that
- * s/he should set $wgEnableAPI to true and exits. Otherwise, it constructs
- * a new ApiMain using the parameter passed to it as an argument in the URL
- * ('?action=') and with write-enabled set to the value of $wgEnableWriteAPI
- * as specified in LocalSettings.php. It then invokes "execute()" on the
- * ApiMain object instance, which produces output in the format sepecified
- * in the URL.
- */
-
 // So extensions (and other code) can check whether they're running in API mode
 define( 'MW_API', true );
 
index 72ee155..bb515c5 100644 (file)
--- a/api.php5
+++ b/api.php5
@@ -1 +1,24 @@
-<?php require 'api.php';
+<?php
+/**
+ * Version of api.php to used in web server requiring .php5 extension
+ * to execute scripts with PHP5 egine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+require 'api.php';
index 0b3eb17..9ff48f0 100644 (file)
@@ -2,57 +2,57 @@
 <!--
        This is an XML Schema description of the format
        output by MediaWiki's Special:Export system.
-       
+
        The canonical URL to the schema document is:
        http://www.mediawiki.org/xml/export-0.1.xsd
-       
+
        Use the namespace:
        http://www.mediawiki.org/xml/export-0.1/
 -->
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:mw="http://www.mediawiki.org/xml/export-0.1/"
-        targetNamespace="http://www.mediawiki.org/xml/export-0.1/"
-        elementFormDefault="qualified">
+               xmlns:mw="http://www.mediawiki.org/xml/export-0.1/"
+               targetNamespace="http://www.mediawiki.org/xml/export-0.1/"
+               elementFormDefault="qualified">
 
        <annotation>
                <documentation xml:lang="en">
                        MediaWiki's page export format
                </documentation>
        </annotation>
-       
+
        <!-- Need this to reference xml:lang -->
        <import namespace="http://www.w3.org/XML/1998/namespace"
-               schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-       
+                       schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
        <!-- Our root element -->
        <element name="mediawiki" type="mw:MediaWikiType"/>
-       
+
        <complexType name="MediaWikiType">
                <sequence>
                        <element name="page" type="mw:PageType"
-                               minOccurs="0" maxOccurs="unbounded"/>
+                                        minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
                <attribute name="version" type="string" use="required"/>
                <attribute ref="xml:lang" use="required"/>
        </complexType>
-       
+
        <complexType name="PageType">
                <sequence>
                        <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
                        <element name="title" type="string"/>
-                       
+
                        <!-- optional page ID number -->
                        <element name="id" type="positiveInteger" minOccurs="0"/>
-                       
+
                        <!-- comma-separated list of string tokens, if present -->
                        <element name="restrictions" type="string" minOccurs="0"/>
-                       
+
                        <!-- Zero or more sets of revision data -->
                        <element name="revision" type="mw:RevisionType"
-                               minOccurs="0" maxOccurs="unbounded"/>
+                                        minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
        </complexType>
-       
+
        <complexType name="RevisionType">
                <sequence>
                        <element name="id" type="positiveInteger" minOccurs="0"/>
                        <element name="text" type="string"/>
                </sequence>
        </complexType>
-       
+
        <complexType name="ContributorType">
                <sequence>
                        <element name="username" type="string" minOccurs="0"/>
                        <element name="id" type="positiveInteger" minOccurs="0" />
-                       
+
                        <element name="ip" type="string" minOccurs="0"/>
                </sequence>
        </complexType>
index 8acbf54..55b05f8 100644 (file)
@@ -2,54 +2,54 @@
 <!--
        This is an XML Schema description of the format
        output by MediaWiki's Special:Export system.
-       
+
        Version 0.2 adds optional basic file upload info support,
        which is used by our OAI export/import submodule.
-       
+
        The canonical URL to the schema document is:
        http://www.mediawiki.org/xml/export-0.2.xsd
-       
+
        Use the namespace:
        http://www.mediawiki.org/xml/export-0.2/
 -->
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:mw="http://www.mediawiki.org/xml/export-0.2/"
-        targetNamespace="http://www.mediawiki.org/xml/export-0.2/"
-        elementFormDefault="qualified">
+               xmlns:mw="http://www.mediawiki.org/xml/export-0.2/"
+               targetNamespace="http://www.mediawiki.org/xml/export-0.2/"
+               elementFormDefault="qualified">
 
        <annotation>
                <documentation xml:lang="en">
                        MediaWiki's page export format
                </documentation>
        </annotation>
-       
+
        <!-- Need this to reference xml:lang -->
        <import namespace="http://www.w3.org/XML/1998/namespace"
-               schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-       
+                       schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
        <!-- Our root element -->
        <element name="mediawiki" type="mw:MediaWikiType"/>
-       
+
        <complexType name="MediaWikiType">
                <sequence>
                        <element name="page" type="mw:PageType"
-                               minOccurs="0" maxOccurs="unbounded"/>
+                                        minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
                <attribute name="version" type="string" use="required"/>
                <attribute ref="xml:lang" use="required"/>
        </complexType>
-       
+
        <complexType name="PageType">
                <sequence>
                        <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
                        <element name="title" type="string"/>
-                       
+
                        <!-- optional page ID number -->
                        <element name="id" type="positiveInteger" minOccurs="0"/>
-                       
+
                        <!-- comma-separated list of string tokens, if present -->
                        <element name="restrictions" type="string" minOccurs="0"/>
-                       
+
                        <!-- Zero or more sets of revision or upload data -->
                        <choice minOccurs="0" maxOccurs="unbounded">
                                <element name="revision" type="mw:RevisionType" />
@@ -57,7 +57,7 @@
                        </choice>
                </sequence>
        </complexType>
-       
+
        <complexType name="RevisionType">
                <sequence>
                        <element name="id" type="positiveInteger" minOccurs="0"/>
                        <element name="text" type="string"/>
                </sequence>
        </complexType>
-       
+
        <complexType name="ContributorType">
                <sequence>
                        <element name="username" type="string" minOccurs="0"/>
                        <element name="id" type="positiveInteger" minOccurs="0" />
-                       
+
                        <element name="ip" type="string" minOccurs="0"/>
                </sequence>
        </complexType>
-       
+
        <complexType name="UploadType">
                <sequence>
                        <!-- Revision-style data... -->
                        <element name="timestamp" type="dateTime"/>
                        <element name="contributor" type="mw:ContributorType"/>
                        <element name="comment" type="string" minOccurs="0"/>
-                       
+
                        <!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
                        <element name="filename" type="string"/>
-                       
+
                        <!-- URI at which this resource can be obtained -->
                        <element name="src" type="anyURI"/>
-                       
+
                        <element name="size" type="positiveInteger" />
-                       
+
                        <!-- TODO: add other metadata fields -->
                </sequence>
        </complexType>
-       
+
 </schema>
index 1e0b7c8..ea2b816 100644 (file)
@@ -2,48 +2,48 @@
 <!--
        This is an XML Schema description of the format
        output by MediaWiki's Special:Export system.
-       
+
        Version 0.2 adds optional basic file upload info support,
        which is used by our OAI export/import submodule.
-       
+
        Version 0.3 adds some site configuration information such
        as a list of defined namespaces.
-       
+
        The canonical URL to the schema document is:
        http://www.mediawiki.org/xml/export-0.3.xsd
-       
+
        Use the namespace:
        http://www.mediawiki.org/xml/export-0.3/
 -->
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:mw="http://www.mediawiki.org/xml/export-0.3/"
-        targetNamespace="http://www.mediawiki.org/xml/export-0.3/"
-        elementFormDefault="qualified">
+               xmlns:mw="http://www.mediawiki.org/xml/export-0.3/"
+               targetNamespace="http://www.mediawiki.org/xml/export-0.3/"
+               elementFormDefault="qualified">
 
        <annotation>
                <documentation xml:lang="en">
                        MediaWiki's page export format
                </documentation>
        </annotation>
-       
+
        <!-- Need this to reference xml:lang -->
        <import namespace="http://www.w3.org/XML/1998/namespace"
-               schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-       
+                       schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
        <!-- Our root element -->
        <element name="mediawiki" type="mw:MediaWikiType"/>
-       
+
        <complexType name="MediaWikiType">
                <sequence>
                        <element name="siteinfo" type="mw:SiteInfoType"
-                               minOccurs="0" maxOccurs="1"/>
+                                        minOccurs="0" maxOccurs="1"/>
                        <element name="page" type="mw:PageType"
-                               minOccurs="0" maxOccurs="unbounded"/>
+                                        minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
                <attribute name="version" type="string" use="required"/>
                <attribute ref="xml:lang" use="required"/>
        </complexType>
-       
+
        <complexType name="SiteInfoType">
                <sequence>
                        <element name="sitename" type="string" minOccurs="0" />
                        <element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
                </sequence>
        </complexType>
-       
+
        <simpleType name="CaseType">
                <restriction base="NMTOKEN">
                        <!-- Cannot have two titles differing only by case of first letter. -->
                        <!-- Default behavior through 1.5, $wgCapitalLinks = true -->
                        <enumeration value="first-letter" />
-                       
+
                        <!-- Complete title is case-sensitive -->
                        <!-- Behavior when $wgCapitalLinks = false -->
                        <enumeration value="case-sensitive" />
-                       
+
                        <!-- Cannot have two titles differing only by case. -->
                        <!-- Not yet implemented as of MediaWiki 1.5 -->
                        <enumeration value="case-insensitive" />
                </restriction>
        </simpleType>
-       
+
        <complexType name="NamespacesType">
                <sequence>
                        <element name="namespace" type="mw:NamespaceType"
-                               minOccurs="0" maxOccurs="unbounded" />
+                                        minOccurs="0" maxOccurs="unbounded" />
                </sequence>
        </complexType>
-       
+
        <complexType name="NamespaceType">
                <simpleContent>
                        <extension base="string">
                        </extension>
                </simpleContent>
        </complexType>
-       
+
        <complexType name="PageType">
                <sequence>
                        <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
                        <element name="title" type="string"/>
-                       
+
                        <!-- optional page ID number -->
                        <element name="id" type="positiveInteger" minOccurs="0"/>
-                       
+
                        <!-- comma-separated list of string tokens, if present -->
                        <element name="restrictions" type="string" minOccurs="0"/>
-                       
+
                        <!-- Zero or more sets of revision or upload data -->
                        <choice minOccurs="0" maxOccurs="unbounded">
                                <element name="revision" type="mw:RevisionType" />
                        </choice>
                </sequence>
        </complexType>
-       
+
        <complexType name="RevisionType">
                <sequence>
                        <element name="id" type="positiveInteger" minOccurs="0"/>
                        <element name="text" type="mw:TextType" />
                </sequence>
        </complexType>
-       
+
        <complexType name="TextType">
                <simpleContent>
                        <extension base="string">
                        </extension>
                </simpleContent>
        </complexType>
-       
+
        <complexType name="ContributorType">
                <sequence>
                        <element name="username" type="string" minOccurs="0"/>
                        <element name="id" type="positiveInteger" minOccurs="0" />
-                       
+
                        <element name="ip" type="string" minOccurs="0"/>
                </sequence>
        </complexType>
-       
+
        <complexType name="UploadType">
                <sequence>
                        <!-- Revision-style data... -->
                        <element name="timestamp" type="dateTime"/>
                        <element name="contributor" type="mw:ContributorType"/>
                        <element name="comment" type="string" minOccurs="0"/>
-                       
+
                        <!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
                        <element name="filename" type="string"/>
-                       
+
                        <!-- URI at which this resource can be obtained -->
                        <element name="src" type="anyURI"/>
-                       
+
                        <element name="size" type="positiveInteger" />
-                       
+
                        <!-- TODO: add other metadata fields -->
                </sequence>
        </complexType>
-       
+
 </schema>
index 3e7f2ea..b3ea3bf 100644 (file)
@@ -2,52 +2,52 @@
 <!--
        This is an XML Schema description of the format
        output by MediaWiki's Special:Export system.
-       
+
        Version 0.2 adds optional basic file upload info support,
        which is used by our OAI export/import submodule.
-       
+
        Version 0.3 adds some site configuration information such
        as a list of defined namespaces.
-       
+
        Version 0.4 adds per-revision delete flags, log exports,
        discussion threading data, a per-page redirect flag, and
        per-namespace capitalization.
 
        The canonical URL to the schema document is:
        http://www.mediawiki.org/xml/export-0.4.xsd
-       
+
        Use the namespace:
        http://www.mediawiki.org/xml/export-0.4/
 -->
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:mw="http://www.mediawiki.org/xml/export-0.4/"
-        targetNamespace="http://www.mediawiki.org/xml/export-0.4/"
-        elementFormDefault="qualified">
+               xmlns:mw="http://www.mediawiki.org/xml/export-0.4/"
+               targetNamespace="http://www.mediawiki.org/xml/export-0.4/"
+               elementFormDefault="qualified">
 
        <annotation>
                <documentation xml:lang="en">
                        MediaWiki's page export format
                </documentation>
        </annotation>
-       
+
        <!-- Need this to reference xml:lang -->
        <import namespace="http://www.w3.org/XML/1998/namespace"
-               schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-       
+                       schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
        <!-- Our root element -->
        <element name="mediawiki" type="mw:MediaWikiType"/>
-       
+
        <complexType name="MediaWikiType">
                <sequence>
                        <element name="siteinfo" type="mw:SiteInfoType"
-                               minOccurs="0" maxOccurs="1"/>
+                                        minOccurs="0" maxOccurs="1"/>
                        <element name="page" type="mw:PageType"
-                               minOccurs="0" maxOccurs="unbounded"/>
+                                        minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
                <attribute name="version" type="string" use="required"/>
                <attribute ref="xml:lang" use="required"/>
        </complexType>
-       
+
        <complexType name="SiteInfoType">
                <sequence>
                        <element name="sitename" type="string" minOccurs="0" />
                        <element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
                </sequence>
        </complexType>
-       
+
        <simpleType name="CaseType">
                <restriction base="NMTOKEN">
                        <!-- Cannot have two titles differing only by case of first letter. -->
                        <!-- Default behavior through 1.5, $wgCapitalLinks = true -->
                        <enumeration value="first-letter" />
-                       
+
                        <!-- Complete title is case-sensitive -->
                        <!-- Behavior when $wgCapitalLinks = false -->
                        <enumeration value="case-sensitive" />
-                       
+
                        <!-- Cannot have non-case senstitive titles eg [[FOO]] == [[Foo]] -->
                        <!-- Not yet implemented as of MediaWiki 1.18 -->
                        <enumeration value="case-insensitive" />
                </restriction>
        </simpleType>
-       
+
        <simpleType name="DeletedFlagType">
                <restriction base="NMTOKEN">
                        <enumeration value="deleted"/>
        <complexType name="NamespacesType">
                <sequence>
                        <element name="namespace" type="mw:NamespaceType"
-                               minOccurs="0" maxOccurs="unbounded" />
+                                        minOccurs="0" maxOccurs="unbounded" />
                </sequence>
        </complexType>
-       
+
        <complexType name="NamespaceType">
                <simpleContent>
                        <extension base="string">
                        </extension>
                </simpleContent>
        </complexType>
-       
+
        <complexType name="PageType">
                <sequence>
                        <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
                        <element name="title" type="string"/>
-                       
+
                        <!-- optional page ID number -->
                        <element name="id" type="positiveInteger" minOccurs="0"/>
-                       
+
                        <!-- flag if the current revision is a redirect -->
-                       <element name="redirect" minOccurs="0"/>        
+                       <element name="redirect" minOccurs="0"/>
 
                        <!-- comma-separated list of string tokens, if present -->
                        <element name="restrictions" type="string" minOccurs="0"/>
-                       
+
                        <!-- Zero or more sets of revision or upload data -->
                        <choice minOccurs="0" maxOccurs="unbounded">
                                <element name="revision" type="mw:RevisionType" />
                                <element name="upload" type="mw:UploadType" />
                                <element name="logitem" type="mw:LogItemType" />
                        </choice>
-                       
+
                        <!-- Zero or One sets of discussion threading data -->
                        <element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
                </sequence>
        </complexType>
-       
+
        <complexType name="RevisionType">
                <sequence>
                        <element name="id" type="positiveInteger" minOccurs="0"/>
                        <element name="text" type="mw:TextType" />
                </sequence>
        </complexType>
-       
+
        <complexType name="CommentType">
                <simpleContent>
                        <extension base="string">
                        <extension base="string">
                                <attribute ref="xml:space" use="optional" default="preserve" />
                                <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
-                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>    
+                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
                                <!-- This isn't a good idea; we should be using "ID" instead of "NMTOKEN" -->
                                <!-- However, "NMTOKEN" is strictest definition that is both compatible with existing -->
                                <!-- usage ([0-9]+) and with the "ID" type. -->
                        </extension>
                </simpleContent>
        </complexType>
-       
+
        <complexType name="ContributorType">
                <sequence>
                        <element name="username" type="string" minOccurs="0"/>
                        <element name="id" type="positiveInteger" minOccurs="0" />
-                       
+
                        <element name="ip" type="string" minOccurs="0"/>
                </sequence>
                <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
                <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
        </complexType>
-       
+
        <complexType name="UploadType">
                <sequence>
                        <!-- Revision-style data... -->
                        <element name="timestamp" type="dateTime"/>
                        <element name="contributor" type="mw:ContributorType"/>
                        <element name="comment" type="string" minOccurs="0"/>
-                       
+
                        <!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
                        <element name="filename" type="string"/>
-                       
+
                        <!-- URI at which this resource can be obtained -->
                        <element name="src" type="anyURI"/>
-                       
+
                        <element name="size" type="positiveInteger" />
-                       
+
                        <!-- TODO: add other metadata fields -->
                </sequence>
        </complexType>
-       
+
        <!-- Discussion threading data for LiquidThreads -->
        <complexType name="DiscussionThreadingInfo">
                <sequence>
                        <element name="ThreadType" type="string" />
                </sequence>
        </complexType>
-       
+
 </schema>
index 469446d..ed6c002 100644 (file)
@@ -2,54 +2,54 @@
 <!--
        This is an XML Schema description of the format
        output by MediaWiki's Special:Export system.
-       
+
        Version 0.2 adds optional basic file upload info support,
        which is used by our OAI export/import submodule.
-       
+
        Version 0.3 adds some site configuration information such
        as a list of defined namespaces.
-       
+
        Version 0.4 adds per-revision delete flags, log exports,
        discussion threading data, a per-page redirect flag, and
        per-namespace capitalization.
-       
+
        Version 0.5 adds byte count per revision.
 
        The canonical URL to the schema document is:
        http://www.mediawiki.org/xml/export-0.5.xsd
-       
+
        Use the namespace:
        http://www.mediawiki.org/xml/export-0.5/
 -->
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:mw="http://www.mediawiki.org/xml/export-0.5/"
-        targetNamespace="http://www.mediawiki.org/xml/export-0.5/"
-        elementFormDefault="qualified">
+               xmlns:mw="http://www.mediawiki.org/xml/export-0.5/"
+               targetNamespace="http://www.mediawiki.org/xml/export-0.5/"
+               elementFormDefault="qualified">
 
        <annotation>
                <documentation xml:lang="en">
                        MediaWiki's page export format
                </documentation>
        </annotation>
-       
+
        <!-- Need this to reference xml:lang -->
        <import namespace="http://www.w3.org/XML/1998/namespace"
-               schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-       
+                       schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
        <!-- Our root element -->
        <element name="mediawiki" type="mw:MediaWikiType"/>
-       
+
        <complexType name="MediaWikiType">
                <sequence>
                        <element name="siteinfo" type="mw:SiteInfoType"
-                               minOccurs="0" maxOccurs="1"/>
+                                        minOccurs="0" maxOccurs="1"/>
                        <element name="page" type="mw:PageType"
-                               minOccurs="0" maxOccurs="unbounded"/>
+                                        minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
                <attribute name="version" type="string" use="required"/>
                <attribute ref="xml:lang" use="required"/>
        </complexType>
-       
+
        <complexType name="SiteInfoType">
                <sequence>
                        <element name="sitename" type="string" minOccurs="0" />
                        <element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
                </sequence>
        </complexType>
-       
+
        <simpleType name="CaseType">
                <restriction base="NMTOKEN">
                        <!-- Cannot have two titles differing only by case of first letter. -->
                        <!-- Default behavior through 1.5, $wgCapitalLinks = true -->
                        <enumeration value="first-letter" />
-                       
+
                        <!-- Complete title is case-sensitive -->
                        <!-- Behavior when $wgCapitalLinks = false -->
                        <enumeration value="case-sensitive" />
-                       
+
                        <!-- Cannot have non-case senstitive titles eg [[FOO]] == [[Foo]] -->
                        <!-- Not yet implemented as of MediaWiki 1.18 -->
                        <enumeration value="case-insensitive" />
                </restriction>
        </simpleType>
-       
+
        <simpleType name="DeletedFlagType">
                <restriction base="NMTOKEN">
                        <enumeration value="deleted"/>
        <complexType name="NamespacesType">
                <sequence>
                        <element name="namespace" type="mw:NamespaceType"
-                               minOccurs="0" maxOccurs="unbounded" />
+                                        minOccurs="0" maxOccurs="unbounded" />
                </sequence>
        </complexType>
-       
+
        <complexType name="NamespaceType">
                <simpleContent>
                        <extension base="string">
                        </extension>
                </simpleContent>
        </complexType>
-       
+
        <complexType name="PageType">
                <sequence>
                        <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
                        <element name="title" type="string"/>
-                       
+
                        <!-- optional page ID number -->
                        <element name="id" type="positiveInteger" minOccurs="0"/>
-                       
+
                        <!-- flag if the current revision is a redirect -->
-                       <element name="redirect" minOccurs="0"/>        
+                       <element name="redirect" minOccurs="0"/>
 
                        <!-- comma-separated list of string tokens, if present -->
                        <element name="restrictions" type="string" minOccurs="0"/>
-                       
+
                        <!-- Zero or more sets of revision or upload data -->
                        <choice minOccurs="0" maxOccurs="unbounded">
                                <element name="revision" type="mw:RevisionType" />
                                <element name="upload" type="mw:UploadType" />
                                <element name="logitem" type="mw:LogItemType" />
                        </choice>
-                       
+
                        <!-- Zero or One sets of discussion threading data -->
                        <element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
                </sequence>
        </complexType>
-       
+
        <complexType name="RevisionType">
                <sequence>
                        <element name="id" type="positiveInteger" minOccurs="0"/>
                        <element name="text" type="mw:TextType" />
                </sequence>
        </complexType>
-       
+
        <complexType name="CommentType">
                <simpleContent>
                        <extension base="string">
                        <extension base="string">
                                <attribute ref="xml:space" use="optional" default="preserve" />
                                <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
-                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>    
+                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
                                <!-- This isn't a good idea; we should be using "ID" instead of "NMTOKEN" -->
                                <!-- However, "NMTOKEN" is strictest definition that is both compatible with existing -->
                                <!-- usage ([0-9]+) and with the "ID" type. -->
                        </extension>
                </simpleContent>
        </complexType>
-       
+
        <complexType name="ContributorType">
                <sequence>
                        <element name="username" type="string" minOccurs="0"/>
                        <element name="id" type="positiveInteger" minOccurs="0" />
-                       
+
                        <element name="ip" type="string" minOccurs="0"/>
                </sequence>
                <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
                <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
        </complexType>
-       
+
        <complexType name="UploadType">
                <sequence>
                        <!-- Revision-style data... -->
                        <element name="timestamp" type="dateTime"/>
                        <element name="contributor" type="mw:ContributorType"/>
                        <element name="comment" type="string" minOccurs="0"/>
-                       
+
                        <!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
                        <element name="filename" type="string"/>
-                       
+
                        <!-- URI at which this resource can be obtained -->
                        <element name="src" type="anyURI"/>
-                       
+
                        <element name="size" type="positiveInteger" />
-                       
+
                        <!-- TODO: add other metadata fields -->
                </sequence>
        </complexType>
-       
+
        <!-- Discussion threading data for LiquidThreads -->
        <complexType name="DiscussionThreadingInfo">
                <sequence>
                        <element name="ThreadType" type="string" />
                </sequence>
        </complexType>
-       
+
 </schema>
index 55428b5..4668794 100644 (file)
@@ -2,57 +2,57 @@
 <!--
        This is an XML Schema description of the format
        output by MediaWiki's Special:Export system.
-       
+
        Version 0.2 adds optional basic file upload info support,
        which is used by our OAI export/import submodule.
-       
+
        Version 0.3 adds some site configuration information such
        as a list of defined namespaces.
-       
+
        Version 0.4 adds per-revision delete flags, log exports,
        discussion threading data, a per-page redirect flag, and
        per-namespace capitalization.
 
        Version 0.5 adds byte count per revision.
-       
+
        Version 0.6 adds a separate namespace tag, and resolves the
-       redirect target and adds a separate sha1 tag for each revision. 
-       
+       redirect target and adds a separate sha1 tag for each revision.
+
        The canonical URL to the schema document is:
        http://www.mediawiki.org/xml/export-0.6.xsd
-       
+
        Use the namespace:
        http://www.mediawiki.org/xml/export-0.6/
 -->
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:mw="http://www.mediawiki.org/xml/export-0.6/"
-        targetNamespace="http://www.mediawiki.org/xml/export-0.6/"
-        elementFormDefault="qualified">
+               xmlns:mw="http://www.mediawiki.org/xml/export-0.6/"
+               targetNamespace="http://www.mediawiki.org/xml/export-0.6/"
+               elementFormDefault="qualified">
 
        <annotation>
                <documentation xml:lang="en">
                        MediaWiki's page export format
                </documentation>
        </annotation>
-       
+
        <!-- Need this to reference xml:lang -->
        <import namespace="http://www.w3.org/XML/1998/namespace"
-               schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-       
+                       schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
        <!-- Our root element -->
        <element name="mediawiki" type="mw:MediaWikiType"/>
-       
+
        <complexType name="MediaWikiType">
                <sequence>
                        <element name="siteinfo" type="mw:SiteInfoType"
-                               minOccurs="0" maxOccurs="1"/>
+                                        minOccurs="0" maxOccurs="1"/>
                        <element name="page" type="mw:PageType"
-                               minOccurs="0" maxOccurs="unbounded"/>
+                                        minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
                <attribute name="version" type="string" use="required"/>
                <attribute ref="xml:lang" use="required"/>
        </complexType>
-       
+
        <complexType name="SiteInfoType">
                <sequence>
                        <element name="sitename" type="string" minOccurs="0" />
                        <element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
                </sequence>
        </complexType>
-       
+
        <simpleType name="CaseType">
                <restriction base="NMTOKEN">
                        <!-- Cannot have two titles differing only by case of first letter. -->
                        <!-- Default behavior through 1.5, $wgCapitalLinks = true -->
                        <enumeration value="first-letter" />
-                       
+
                        <!-- Complete title is case-sensitive -->
                        <!-- Behavior when $wgCapitalLinks = false -->
                        <enumeration value="case-sensitive" />
-                       
+
                        <!-- Cannot have non-case senstitive titles eg [[FOO]] == [[Foo]] -->
                        <!-- Not yet implemented as of MediaWiki 1.18 -->
                        <enumeration value="case-insensitive" />
                </restriction>
        </simpleType>
-       
+
        <simpleType name="DeletedFlagType">
                <restriction base="NMTOKEN">
                        <enumeration value="deleted"/>
        <complexType name="NamespacesType">
                <sequence>
                        <element name="namespace" type="mw:NamespaceType"
-                               minOccurs="0" maxOccurs="unbounded" />
+                                        minOccurs="0" maxOccurs="unbounded" />
                </sequence>
        </complexType>
-       
+
        <complexType name="NamespaceType">
                <simpleContent>
                        <extension base="string">
                        </extension>
                </simpleContent>
        </complexType>
-       
+
        <complexType name="PageType">
                <sequence>
                        <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
                        <element name="title" type="string"/>
-                       
+
                        <!-- Namespace in canonical form -->
                        <element name="ns" type="positiveInteger"/>
-                       
+
                        <!-- optional page ID number -->
                        <element name="id" type="positiveInteger" minOccurs="0"/>
-                       
+
                        <!-- flag if the current revision is a redirect -->
-                       <element name="redirect" type="string" minOccurs="0"/>  
+                       <element name="redirect" type="string" minOccurs="0"/>
 
                        <!-- comma-separated list of string tokens, if present -->
                        <element name="restrictions" type="string" minOccurs="0"/>
-                       
+
                        <!-- Zero or more sets of revision or upload data -->
                        <choice minOccurs="0" maxOccurs="unbounded">
                                <element name="revision" type="mw:RevisionType" />
                                <element name="upload" type="mw:UploadType" />
                                <element name="logitem" type="mw:LogItemType" />
                        </choice>
-                       
+
                        <!-- Zero or One sets of discussion threading data -->
                        <element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
                </sequence>
        </complexType>
-       
+
        <complexType name="RevisionType">
                <sequence>
                        <element name="id" type="positiveInteger" minOccurs="0"/>
                        <element name="text" type="mw:TextType" />
                </sequence>
        </complexType>
-       
+
        <complexType name="CommentType">
                <simpleContent>
                        <extension base="string">
                        <extension base="string">
                                <attribute ref="xml:space" use="optional" default="preserve" />
                                <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
-                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>    
+                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
                                <!-- This isn't a good idea; we should be using "ID" instead of "NMTOKEN" -->
                                <!-- However, "NMTOKEN" is strictest definition that is both compatible with existing -->
                                <!-- usage ([0-9]+) and with the "ID" type. -->
                        </extension>
                </simpleContent>
        </complexType>
-       
+
        <complexType name="ContributorType">
                <sequence>
                        <element name="username" type="string" minOccurs="0"/>
                        <element name="id" type="positiveInteger" minOccurs="0" />
-                       
+
                        <element name="ip" type="string" minOccurs="0"/>
                </sequence>
                <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
                <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
        </complexType>
-       
+
        <complexType name="UploadType">
                <sequence>
                        <!-- Revision-style data... -->
                        <element name="timestamp" type="dateTime"/>
                        <element name="contributor" type="mw:ContributorType"/>
                        <element name="comment" type="string" minOccurs="0"/>
-                       
+
                        <!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
                        <element name="filename" type="string"/>
-                       
+
                        <!-- URI at which this resource can be obtained -->
                        <element name="src" type="anyURI"/>
-                       
+
                        <element name="size" type="positiveInteger" />
-                       
+
                        <!-- TODO: add other metadata fields -->
                </sequence>
        </complexType>
-       
+
        <!-- Discussion threading data for LiquidThreads -->
        <complexType name="DiscussionThreadingInfo">
                <sequence>
                        <element name="ThreadType" type="string" />
                </sequence>
        </complexType>
-       
+
 </schema>
diff --git a/docs/export-0.7.xsd b/docs/export-0.7.xsd
new file mode 100644 (file)
index 0000000..1871a65
--- /dev/null
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+       This is an XML Schema description of the format
+       output by MediaWiki's Special:Export system.
+
+       Version 0.2 adds optional basic file upload info support,
+       which is used by our OAI export/import submodule.
+
+       Version 0.3 adds some site configuration information such
+       as a list of defined namespaces.
+
+       Version 0.4 adds per-revision delete flags, log exports,
+       discussion threading data, a per-page redirect flag, and
+       per-namespace capitalization.
+
+       Version 0.5 adds byte count per revision.
+
+       Version 0.6 adds a separate namespace tag, and resolves the
+       redirect target and adds a separate sha1 tag for each revision.
+
+       Version 0.7 adds a unique identity constraint for both page and
+       revision identifiers. See also bug 4220.
+
+       The canonical URL to the schema document is:
+       http://www.mediawiki.org/xml/export-0.7.xsd
+
+       Use the namespace:
+       http://www.mediawiki.org/xml/export-0.7/
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+               xmlns:mw="http://www.mediawiki.org/xml/export-0.7/"
+               targetNamespace="http://www.mediawiki.org/xml/export-0.7/"
+               elementFormDefault="qualified">
+
+       <annotation>
+               <documentation xml:lang="en">
+                       MediaWiki's page export format
+               </documentation>
+       </annotation>
+
+       <!-- Need this to reference xml:lang -->
+       <import namespace="http://www.w3.org/XML/1998/namespace"
+                       schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+       <!-- Our root element -->
+       <element name="mediawiki" type="mw:MediaWikiType">
+               <!-- Page ID contraint, see bug 4220 -->
+               <unique name="PageIDConstraint">
+                       <selector xpath="mw:page"/>
+                       <field xpath="mw:id"/>
+               </unique>
+               <!-- Revision ID contraint, see bug 4220 -->
+               <unique name="RevIDConstraint">
+                       <selector xpath="mw:page/mw:revision"/>
+                       <field xpath="mw:id"/>
+               </unique>
+       </element>
+
+       <complexType name="MediaWikiType">
+               <sequence>
+                       <element name="siteinfo" type="mw:SiteInfoType"
+                                        minOccurs="0" maxOccurs="1"/>
+                       <element name="page" type="mw:PageType"
+                                        minOccurs="0" maxOccurs="unbounded"/>
+               </sequence>
+               <attribute name="version" type="string" use="required"/>
+               <attribute ref="xml:lang" use="required"/>
+       </complexType>
+
+       <complexType name="SiteInfoType">
+               <sequence>
+                       <element name="sitename" type="string" minOccurs="0" />
+                       <element name="base" type="anyURI" minOccurs="0" />
+                       <element name="generator" type="string" minOccurs="0" />
+                       <element name="case" type="mw:CaseType" minOccurs="0" />
+                       <element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
+               </sequence>
+       </complexType>
+
+       <simpleType name="CaseType">
+               <restriction base="NMTOKEN">
+                       <!-- Cannot have two titles differing only by case of first letter. -->
+                       <!-- Default behavior through 1.5, $wgCapitalLinks = true -->
+                       <enumeration value="first-letter" />
+
+                       <!-- Complete title is case-sensitive -->
+                       <!-- Behavior when $wgCapitalLinks = false -->
+                       <enumeration value="case-sensitive" />
+
+                       <!-- Cannot have non-case senstitive titles eg [[FOO]] == [[Foo]] -->
+                       <!-- Not yet implemented as of MediaWiki 1.18 -->
+                       <enumeration value="case-insensitive" />
+               </restriction>
+       </simpleType>
+
+       <simpleType name="DeletedFlagType">
+               <restriction base="NMTOKEN">
+                       <enumeration value="deleted"/>
+               </restriction>
+       </simpleType>
+
+       <complexType name="NamespacesType">
+               <sequence>
+                       <element name="namespace" type="mw:NamespaceType"
+                                        minOccurs="0" maxOccurs="unbounded" />
+               </sequence>
+       </complexType>
+
+       <complexType name="NamespaceType">
+               <simpleContent>
+                       <extension base="string">
+                               <attribute name="key" type="integer" />
+                               <attribute name="case" type="mw:CaseType" />
+                       </extension>
+               </simpleContent>
+       </complexType>
+
+       <complexType name="PageType">
+               <sequence>
+                       <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
+                       <element name="title" type="string"/>
+
+                       <!-- Namespace in canonical form -->
+                       <element name="ns" type="positiveInteger"/>
+
+                       <!-- optional page ID number -->
+                       <element name="id" type="positiveInteger" minOccurs="0"/>
+
+                       <!-- flag if the current revision is a redirect -->
+                       <element name="redirect" type="string" minOccurs="0"/>
+
+                       <!-- comma-separated list of string tokens, if present -->
+                       <element name="restrictions" type="string" minOccurs="0"/>
+
+                       <!-- Zero or more sets of revision or upload data -->
+                       <choice minOccurs="0" maxOccurs="unbounded">
+                               <element name="revision" type="mw:RevisionType" />
+                               <element name="upload" type="mw:UploadType" />
+                               <element name="logitem" type="mw:LogItemType" />
+                       </choice>
+
+                       <!-- Zero or One sets of discussion threading data -->
+                       <element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
+               </sequence>
+       </complexType>
+
+       <complexType name="RevisionType">
+               <sequence>
+                       <element name="id" type="positiveInteger" minOccurs="0"/>
+                       <element name="timestamp" type="dateTime"/>
+                       <element name="contributor" type="mw:ContributorType"/>
+                       <element name="minor" minOccurs="0" />
+                       <element name="comment" type="mw:CommentType" minOccurs="0"/>
+                       <element name="sha1" type="string" />
+                       <element name="text" type="mw:TextType" />
+               </sequence>
+       </complexType>
+
+       <complexType name="LogItemType">
+               <sequence>
+                       <element name="id" type="positiveInteger" minOccurs="0"/>
+                       <element name="timestamp" type="dateTime"/>
+                       <element name="contributor" type="mw:ContributorType"/>
+                       <element name="comment" type="mw:CommentType" minOccurs="0"/>
+                       <element name="type" type="string" />
+                       <element name="action" type="string" />
+                       <element name="text" type="mw:TextType" />
+               </sequence>
+       </complexType>
+
+       <complexType name="CommentType">
+               <simpleContent>
+                       <extension base="string">
+                               <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
+                       </extension>
+               </simpleContent>
+       </complexType>
+
+       <complexType name="TextType">
+               <simpleContent>
+                       <extension base="string">
+                               <attribute ref="xml:space" use="optional" default="preserve" />
+                               <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
+                               <!-- This isn't a good idea; we should be using "ID" instead of "NMTOKEN" -->
+                               <!-- However, "NMTOKEN" is strictest definition that is both compatible with existing -->
+                               <!-- usage ([0-9]+) and with the "ID" type. -->
+                               <attribute name="id" type="NMTOKEN"/>
+                               <attribute name="bytes" use="optional" type="nonNegativeInteger"/>
+                       </extension>
+               </simpleContent>
+       </complexType>
+
+       <complexType name="ContributorType">
+               <sequence>
+                       <element name="username" type="string" minOccurs="0"/>
+                       <element name="id" type="positiveInteger" minOccurs="0" />
+
+                       <element name="ip" type="string" minOccurs="0"/>
+               </sequence>
+               <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+               <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
+       </complexType>
+
+       <complexType name="UploadType">
+               <sequence>
+                       <!-- Revision-style data... -->
+                       <element name="timestamp" type="dateTime"/>
+                       <element name="contributor" type="mw:ContributorType"/>
+                       <element name="comment" type="string" minOccurs="0"/>
+
+                       <!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
+                       <element name="filename" type="string"/>
+
+                       <!-- URI at which this resource can be obtained -->
+                       <element name="src" type="anyURI"/>
+
+                       <element name="size" type="positiveInteger" />
+
+                       <!-- TODO: add other metadata fields -->
+               </sequence>
+       </complexType>
+
+       <!-- Discussion threading data for LiquidThreads -->
+       <complexType name="DiscussionThreadingInfo">
+               <sequence>
+                       <element name="ThreadSubject" type="string" />
+                       <element name="ThreadParent" type="positiveInteger" />
+                       <element name="ThreadAncestor" type="positiveInteger" />
+                       <element name="ThreadPage" type="string" />
+                       <element name="ThreadID" type="positiveInteger" />
+                       <element name="ThreadAuthor" type="string" />
+                       <element name="ThreadEditStatus" type="string" />
+                       <element name="ThreadType" type="string" />
+               </sequence>
+       </complexType>
+
+</schema>
index a51e5ca..d712589 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 /**
  * Image authorisation script
  *
  *
  * Your server needs to support PATH_INFO; CGI-based configurations usually don't.
  *
- * @file
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
- **/
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
 
 define( 'MW_NO_OUTPUT_COMPRESSION', 1 );
 if ( isset( $_SERVER['MW_COMPILED'] ) ) {
index df25e95..b3eb450 100644 (file)
@@ -1 +1,24 @@
-<?php require './img_auth.php';
\ No newline at end of file
+<?php
+/**
+ * Version of img_auth.php to used in web server requiring .php5 extension
+ * to execute scripts with PHP5 egine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+require './img_auth.php';
index a25e8aa..a9891ec 100644 (file)
@@ -1,15 +1,6 @@
 <?php
 /**
- * @defgroup Actions Action done on pages
- */
-
-/**
- * Actions are things which can be done to pages (edit, delete, rollback, etc).  They
- * are distinct from Special Pages because an action must apply to exactly one page.
- *
- * To add an action in an extension, create a subclass of Action, and add the key to
- * $wgActions.  There is also the deprecated UnknownAction hook
- *
+ * Base classes for actions done on pages.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  *
  * @file
  */
+
+/**
+ * @defgroup Actions Action done on pages
+ */
+
+/**
+ * Actions are things which can be done to pages (edit, delete, rollback, etc).  They
+ * are distinct from Special Pages because an action must apply to exactly one page.
+ *
+ * To add an action in an extension, create a subclass of Action, and add the key to
+ * $wgActions.  There is also the deprecated UnknownAction hook
+ *
+ * Actions generally fall into two groups: the show-a-form-then-do-something-with-the-input
+ * format (protect, delete, move, etc), and the just-do-something format (watch, rollback,
+ * patrol, etc). The FormAction and FormlessAction classes respresent these two groups.
+ */
 abstract class Action {
 
        /**
         * Page on which we're performing the action
-        * @var Page
+        * @var Page $page
         */
        protected $page;
 
        /**
         * IContextSource if specified; otherwise we'll use the Context from the Page
-        * @var IContextSource
+        * @var IContextSource $context
         */
        protected $context;
 
        /**
         * The fields used to create the HTMLForm
-        * @var Array
+        * @var Array $fields
         */
        protected $fields;
 
@@ -352,6 +359,9 @@ abstract class Action {
        public abstract function execute();
 }
 
+/**
+ * An action which shows a form and does something based on the input from the form
+ */
 abstract class FormAction extends Action {
 
        /**
@@ -446,8 +456,8 @@ abstract class FormAction extends Action {
        /**
         * @see Action::execute()
         * @throws ErrorPageError
-        * @param array|null $data
-        * @param bool $captureErrors
+        * @param $data array|null
+        * @param $captureErrors bool
         * @return bool
         */
        public function execute( array $data = null, $captureErrors = true ) {
@@ -488,9 +498,7 @@ abstract class FormAction extends Action {
 }
 
 /**
- * Actions generally fall into two groups: the show-a-form-then-do-something-with-the-input
- * format (protect, delete, move, etc), and the just-do-something format (watch, rollback,
- * patrol, etc).
+ * An action which just does something, without showing a form first.
  */
 abstract class FormlessAction extends Action {
 
@@ -509,10 +517,17 @@ abstract class FormlessAction extends Action {
                return false;
        }
 
+       /**
+        * @param $data Array
+        * @return bool
+        */
        public function onSubmit( $data ) {
                return false;
        }
 
+       /**
+        * @return bool
+        */
        public function onSuccess() {
                return false;
        }
index 5bc9f06..e3df520 100644 (file)
@@ -1,10 +1,28 @@
 <?php
 /**
- * @defgroup Ajax Ajax
+ * Handle ajax requests and send them to the proper handler.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
  * @ingroup Ajax
- * Handle ajax requests and send them to the proper handler.
+ */
+
+/**
+ * @defgroup Ajax Ajax
  */
 
 /**
  * @ingroup Ajax
  */
 class AjaxDispatcher {
-       /** The way the request was made, either a 'get' or a 'post' */
+       /**
+        * The way the request was made, either a 'get' or a 'post'
+        * @var string $mode
+        */
        private $mode;
 
-       /** Name of the requested handler */
+       /**
+        * Name of the requested handler
+        * @var string $func_name
+        */
        private $func_name;
 
-       /** Arguments passed */
+       /** Arguments passed
+        * @var array $args
+        */
        private $args;
 
-       /** Load up our object with user supplied data */
+       /**
+        * Load up our object with user supplied data
+        */
        function __construct() {
                wfProfileIn( __METHOD__ );
 
@@ -62,7 +90,8 @@ class AjaxDispatcher {
                wfProfileOut( __METHOD__ );
        }
 
-       /** Pass the request to our internal function.
+       /**
+        * Pass the request to our internal function.
         * BEWARE! Data are passed as they have been supplied by the user,
         * they should be carefully handled in the function processing the
         * request.
index a395239..6bf94cc 100644 (file)
@@ -1,6 +1,21 @@
 <?php
 /**
- * Response handler for Ajax requests
+ * Response handler for Ajax requests.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
  * @ingroup Ajax
  * @ingroup Ajax
  */
 class AjaxResponse {
-       /** Number of seconds to get the response cached by a proxy */
+
+       /**
+        * Number of seconds to get the response cached by a proxy
+        * @var int $mCacheDuration
+        */
        private $mCacheDuration;
 
-       /** HTTP header Content-Type */
+       /**
+        * HTTP header Content-Type
+        * @var string $mContentType
+        */
        private $mContentType;
 
-       /** Disables output. Can be set by calling $AjaxResponse->disable() */
+       /**
+        * Disables output. Can be set by calling $AjaxResponse->disable()
+        * @var bool $mDisabled
+        */
        private $mDisabled;
 
-       /** Date for the HTTP header Last-modified */
+       /**
+        * Date for the HTTP header Last-modified
+        * @var string|false $mLastModified
+        */
        private $mLastModified;
 
-       /** HTTP response code */
+       /**
+        * HTTP response code
+        * @var string $mResponseCode
+        */
        private $mResponseCode;
 
-       /** HTTP Vary header */
+       /**
+        * HTTP Vary header
+        * @var string $mVary
+        */
        private $mVary;
 
-       /** Content of our HTTP response */
+       /**
+        * Content of our HTTP response
+        * @var string $mText
+        */
        private $mText;
 
        /**
@@ -52,22 +89,41 @@ class AjaxResponse {
                }
        }
 
+       /**
+        * Set the number of seconds to get the response cached by a proxy
+        * @param $duration int
+        */
        function setCacheDuration( $duration ) {
                $this->mCacheDuration = $duration;
        }
 
+       /**
+        * Set the HTTP Vary header
+        * @param $vary string
+        */
        function setVary( $vary ) {
                $this->mVary = $vary;
        }
 
+       /**
+        * Set the HTTP response code
+        * @param $code string
+        */
        function setResponseCode( $code ) {
                $this->mResponseCode = $code;
        }
 
+       /**
+        * Set the HTTP header Content-Type
+        * @param $type string
+        */
        function setContentType( $type ) {
                $this->mContentType = $type;
        }
 
+       /**
+        * Disable output.
+        */
        function disable() {
                $this->mDisabled = true;
        }
@@ -207,8 +263,8 @@ class AjaxResponse {
        }
 
        /**
-        * @param $mckey
-        * @param $touched
+        * @param $mckey string
+        * @param $touched int
         * @return bool
         */
        function loadFromMemcached( $mckey, $touched ) {
@@ -235,7 +291,7 @@ class AjaxResponse {
        }
 
        /**
-        * @param $mckey
+        * @param $mckey string
         * @param $expiry int
         * @return bool
         */
index 5bfc771..c7d350a 100644 (file)
@@ -1,6 +1,22 @@
 <?php
 /**
- * File for articles
+ * User interface for page actions.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
 
@@ -9,7 +25,7 @@
  *
  * This maintains WikiPage functions for backwards compatibility.
  *
- * @TODO: move and rewrite code to an Action class
+ * @todo move and rewrite code to an Action class
  *
  * See design.txt for an overview.
  * Note: edit user interface and cache support functions have been
@@ -23,49 +39,76 @@ class Article extends Page {
         */
 
        /**
-        * @var IContextSource
+        * The context this Article is executed in
+        * @var IContextSource $mContext
         */
        protected $mContext;
 
        /**
-        * @var WikiPage
+        * The WikiPage object of this instance
+        * @var WikiPage $mPage
         */
        protected $mPage;
 
        /**
-        * @var ParserOptions: ParserOptions object for $wgUser articles
+        * ParserOptions object for $wgUser articles
+        * @var ParserOptions $mParserOptions
         */
        public $mParserOptions;
 
+       /**
+        * Text of the revision we are working on
+        * @var string $mContent
+        */
        var $mContent;                    // !< #BC cruft
 
        /**
+        * Content of the revision we are working on
         * @var Content
         * @since 1.WD
         */
-       var $mContentObject;
+       var $mContentObject;              // !<
 
+       /**
+        * Is the content ($mContent) already loaded?
+        * @var bool $mContentLoaded
+        */
        var $mContentLoaded = false;      // !<
+
+       /**
+        * The oldid of the article that is to be shown, 0 for the
+        * current revision
+        * @var int|null $mOldId
+        */
        var $mOldId;                      // !<
 
        /**
-        * @var Title
+        * Title from which we were redirected here
+        * @var Title $mRedirectedFrom
         */
        var $mRedirectedFrom = null;
 
        /**
-        * @var mixed: boolean false or URL string
+        * URL to redirect to or false if none
+        * @var string|false $mRedirectUrl
         */
        var $mRedirectUrl = false;        // !<
+
+       /**
+        * Revision ID of revision we are working on
+        * @var int $mRevIdFetched
+        */
        var $mRevIdFetched = 0;           // !<
 
        /**
-        * @var Revision
+        * Revision we are working on
+        * @var Revision $mRevision
         */
        var $mRevision = null;
 
        /**
-        * @var ParserOutput
+        * ParserOutput object
+        * @var ParserOutput $mParserOutput
         */
        var $mParserOutput;
 
@@ -870,7 +913,7 @@ class Article extends Page {
         * merging of several policies using array_merge().
         * @param $policy Mixed, returns empty array on null/false/'', transparent
         *            to already-converted arrays, converts String.
-        * @return Array: 'index' => <indexpolicy>, 'follow' => <followpolicy>
+        * @return Array: 'index' => \<indexpolicy\>, 'follow' => \<followpolicy\>
         */
        public static function formatRobotPolicy( $policy ) {
                if ( is_array( $policy ) ) {
@@ -1723,6 +1766,7 @@ class Article extends Page {
        /**
         * Handle action=purge
         * @deprecated since 1.19
+        * @return Action|bool|null false if the action is disabled, null if it is not recognised
         */
        public function purge() {
                return Action::factory( 'purge', $this )->show();
index 07a614a..e550473 100644 (file)
@@ -248,6 +248,8 @@ class AuthPlugin {
        /**
         * If you want to munge the case of an account name before the final
         * check, now is your chance.
+        * @param $username string
+        * @return string
         */
        public function getCanonicalName( $username ) {
                return $username;
index 5736b96..9ab59d0 100644 (file)
@@ -2,6 +2,21 @@
 /**
  * This defines autoloading handler for whole MediaWiki framework
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
 
@@ -57,6 +72,7 @@ $wgAutoloadLocalClasses = array(
        'DeprecatedGlobal' => 'includes/DeprecatedGlobal.php',
        'DerivativeRequest' => 'includes/WebRequest.php',
        'DeviceDetection' => 'includes/DeviceDetection.php',
+       'DeviceProperties' => 'includes/DeviceDetection.php',
        'DiffHistoryBlob' => 'includes/HistoryBlob.php',
        'DoubleReplacer' => 'includes/StringUtils.php',
        'DummyLinker' => 'includes/Linker.php',
@@ -122,6 +138,8 @@ $wgAutoloadLocalClasses = array(
        'HttpRequest' => 'includes/HttpFunctions.old.php',
        'ICacheHelper' => 'includes/CacheHelper.php',
        'IcuCollation' => 'includes/Collation.php',
+       'IDeviceProperties' => 'includes/DeviceDetection.php',
+       'IDeviceDetector' => 'includes/DeviceDetection.php',
        'IdentityCollation' => 'includes/Collation.php',
        'ImageGallery' => 'includes/ImageGallery.php',
        'ImageHistoryList' => 'includes/ImagePage.php',
@@ -1077,6 +1095,7 @@ class AutoLoader {
         * Sanitizer that have define()s outside of their class definition. Of course
         * this wouldn't be necessary if everything in MediaWiki was class-based. Sigh.
         *
+        * @param $class string
         * @return Boolean Return the results of class_exists() so we know if we were successful
         */
        static function loadClass( $class ) {
index 38adf14..9c77855 100644 (file)
@@ -1,9 +1,30 @@
 <?php
+/**
+ * Automatic user rights promotion based on conditions specified
+ * in $wgAutopromote.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
 /**
  * This class checks if user can get extra rights
  * because of conditions specified in $wgAutopromote
  */
-
 class Autopromote {
        /**
         * Get the groups for the given user based on $wgAutopromote.
index c028352..2aba29f 100644 (file)
@@ -1,7 +1,28 @@
 <?php
 /**
- * File for BacklinkCache class
+ * Class for fetching backlink lists, approximate backlink counts and
+ * partitions.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
+ * @author Tim Starling
+ * @copyright © 2009, Tim Starling, Domas Mituzas
+ * @copyright © 2010, Max Sem
+ * @copyright © 2011, Antoine Musso
  */
 
 /**
  * Introduced by r47317
  *
  * @internal documentation reviewed on 18 Mar 2011 by hashar
- *
- * @author Tim Starling
- * @copyright © 2009, Tim Starling, Domas Mituzas
- * @copyright © 2010, Max Sem
- * @copyright © 2011, Antoine Musso
  */
 class BacklinkCache {
 
index 7cdc756..301a45a 100644 (file)
@@ -126,17 +126,42 @@ class Block {
                $dbr = wfGetDB( DB_SLAVE );
                $res = $dbr->selectRow(
                        'ipblocks',
-                       '*',
+                       self::selectFields(),
                        array( 'ipb_id' => $id ),
                        __METHOD__
                );
                if ( $res ) {
-                       return Block::newFromRow( $res );
+                       return self::newFromRow( $res );
                } else {
                        return null;
                }
        }
 
+       /**
+        * Return the list of ipblocks fields that should be selected to create
+        * a new block.
+        * @return array
+        */
+       public static function selectFields() {
+               return array(
+                       'ipb_id',
+                       'ipb_address',
+                       'ipb_by',
+                       'ipb_by_text',
+                       'ipb_reason',
+                       'ipb_timestamp',
+                       'ipb_auto',
+                       'ipb_anon_only',
+                       'ipb_create_account',
+                       'ipb_enable_autoblock',
+                       'ipb_expiry',
+                       'ipb_deleted',
+                       'ipb_block_email',
+                       'ipb_allow_usertalk',
+                       'ipb_parent_block_id',
+               );
+       }
+
        /**
         * Check if two blocks are effectively equal.  Doesn't check irrelevant things like
         * the blocking user or the block timestamp, only things which affect the blocked user   *
@@ -247,7 +272,7 @@ class Block {
                        }
                }
 
-               $res = $db->select( 'ipblocks', '*', $conds, __METHOD__ );
+               $res = $db->select( 'ipblocks', self::selectFields(), $conds, __METHOD__ );
 
                # This result could contain a block on the user, a block on the IP, and a russian-doll
                # set of rangeblocks.  We want to choose the most specific one, so keep a leader board.
@@ -260,7 +285,7 @@ class Block {
                $bestBlockPreventsEdit = null;
 
                foreach( $res as $row ){
-                       $block = Block::newFromRow( $row );
+                       $block = self::newFromRow( $row );
 
                        # Don't use expired blocks
                        if( $block->deleteIfExpired() ){
index 6b6a594..5209857 100644 (file)
@@ -1,13 +1,32 @@
 <?php
-
 /**
- * Interface for all classes implementing CacheHelper functionality.
+ * Cache of various elements in a single cache entry.
  *
- * @since 1.20
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @licence GNU GPL v2 or later
  * @author Jeroen De Dauw < jeroendedauw@gmail.com >
  */
+
+/**
+ * Interface for all classes implementing CacheHelper functionality.
+ *
+ * @since 1.20
+ */
 interface ICacheHelper {
 
        /**
@@ -81,11 +100,6 @@ interface ICacheHelper {
  * After adding the last HTML that should be cached, call $this->saveCache();
  *
  * @since 1.20
- *
- * @file CacheHelper.php
- *
- * @licence GNU GPL v2 or later
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
  */
 class CacheHelper implements ICacheHelper {
 
@@ -360,4 +374,4 @@ class CacheHelper implements ICacheHelper {
                $this->onInitHandler = $handlerFunction;
        }
 
-}
\ No newline at end of file
+}
index 4f1e423..7987069 100644 (file)
@@ -1,14 +1,33 @@
 <?php
+/**
+ * Representation for a category.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Simetrical
+ */
+
 /**
  * Category objects are immutable, strictly speaking. If you call methods that change the database,
  * like to refresh link counts, the objects will be appropriately reinitialized.
  * Member variables are lazy-initialized.
  *
  * TODO: Move some stuff from CategoryPage.php to here, and use that.
- *
- * @author Simetrical
  */
-
 class Category {
        /** Name of the category, normalized to DB-key form */
        private $mName = null;
index 3c7d89e..32e270e 100644 (file)
@@ -1,14 +1,26 @@
 <?php
 /**
- * Class for viewing MediaWiki category description pages.
+ * Special handling for category description pages.
  * Modelled after ImagePage.php.
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
 
-if ( !defined( 'MEDIAWIKI' ) )
-       die( 1 );
-
 /**
  * Special handling for category description pages, showing pages,
  * subcategories and file that belong to the category
index dff3802..d83e0e0 100644 (file)
@@ -1,7 +1,24 @@
 <?php
-
-if ( !defined( 'MEDIAWIKI' ) )
-       die( 1 );
+/**
+ * List and paging of category members.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
 
 class CategoryViewer extends ContextSource {
        var $limit, $from, $until,
index 4a8ed70..e2b6a0c 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Recent changes filtering by category.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
 /**
  * The "Categoryfinder" class takes a list of articles, creates an internal
  * representation of all their parent categories (as well as parents of
index 94aa192..ae2e5b1 100644 (file)
@@ -1,6 +1,21 @@
 <?php
 /**
- * Native CDB file reader and writer
+ * Native CDB file reader and writer.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
  */
index 77b61cb..02be65f 100644 (file)
@@ -6,6 +6,21 @@
  *    * Exception thrown if sizes or offsets are between 2GB and 4GB
  *    * Some variables renamed
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
 
index 0dbaac6..204df45 100644 (file)
@@ -1,9 +1,25 @@
 <?php
 /**
- * Functions related to change tags.
+ * Recent changes tagging.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
  */
+
 class ChangeTags {
 
        /**
index ba3bfd6..2954920 100644 (file)
@@ -1,4 +1,24 @@
 <?php
+/**
+ * Feed for list of changes.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
 
 /**
  * Feed to Special:RecentChanges and Special:RecentChangesLiked
index e0183c4..c6572b1 100644 (file)
@@ -1,10 +1,27 @@
 <?php
 /**
- * Classes to show various lists of changes:
+ * Classes to show lists of changes.
+ *
+ * These can be:
  * - watchlist
  * - related changes
  * - recent changes
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
 
index e4ffae6..ad2b94b 100644 (file)
@@ -1,4 +1,24 @@
 <?php
+/**
+ * Database row sorting.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
 
 abstract class Collation {
        static $instance;
index 8fa6233..b68fc76 100644 (file)
@@ -1,4 +1,24 @@
 <?php
+/**
+ * Configuration file editor.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
 
 /**
  * This is a state machine style parser with two internal stacks:
index b76212e..1ca02b5 100644 (file)
@@ -1,6 +1,24 @@
 <?php
 /**
- * @defgroup HTTP HTTP
+ * Cookie for HTTP requests.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup HTTP
  */
 
 class Cookie {
index 95905fb..bb80eeb 100644 (file)
@@ -5,6 +5,21 @@
  * This is based in part on Drupal code as well as what we used in our own code
  * prior to introduction of this class.
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @author Daniel Friesen
  * @file
  */
index 07e8223..7203c3b 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 /**
- * See docs/deferred.txt
+ * Base code for update jobs that do something with some secondary
+ * data extracted from article.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
+ */
+
+/**
  * Abstract base class for update jobs that do something with some secondary
  * data extracted from article.
  */
index e246963..058d408 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 /**
- * @file
+ * Default values for configuration settings.
+ *
  *
  *                 NEVER EDIT THIS FILE
  *
  *
  * Documentation is in the source and on:
  * http://www.mediawiki.org/wiki/Manual:Configuration_settings
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  */
 
 /**
@@ -310,9 +328,11 @@ $wgImgAuthPublicTest = true;
  *   - zones            Associative array of zone names that each map to an array with:
  *                          container : backend container name the zone is in
  *                          directory : root path within container for the zone
- *                      Zones default to using <repo name>-<zone> as the
- *                      container name and the container root as the zone directory.
- *   - url              Base public URL
+ *                          url       : base URL to the root of the zone
+ *                      Zones default to using <repo name>-<zone name> as the container name
+ *                      and default to using the container root as the zone's root directory.
+ *                      Nesting of zone locations within other zones should be avoided.
+ *   - url              Public zone URL. The 'zones' settings take precedence.
  *   - hashLevels       The number of directory levels for hash-based division of files
  *   - thumbScriptUrl   The URL for thumb.php (optional, not recommended)
  *   - transformVia404  Whether to skip media file transformation on parse and rely on a 404
@@ -1332,6 +1352,7 @@ $wgSharedTables = array( 'user', 'user_properties' );
  *                  - DBO_TRX -- wrap entire request in a transaction
  *                  - DBO_IGNORE -- ignore errors (not useful in LocalSettings.php)
  *                  - DBO_NOBUFFER -- turn off buffering (not useful in LocalSettings.php)
+ *                  - DBO_PERSISTENT -- enables persistent database connections
  *
  *   - max lag:     (optional) Maximum replication lag before a slave will taken out of rotation
  *   - max threads: (optional) Maximum number of running threads
@@ -5775,6 +5796,19 @@ $wgCompiledFiles = array();
 /** @} */ # End of HipHop compilation }
 
 
+/************************************************************************//**
+ * @name   Mobile support
+ * @{
+ */
+
+/**
+ * Name of the class used for mobile device detection, must be inherited from
+ * IDeviceDetector.
+ */
+$wgDeviceDetectionClass = 'DeviceDetection';
+
+/** @} */ # End of Mobile support }
+
 /************************************************************************//**
  * @name   Miscellaneous
  * @{
index 262994e..00af974 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Interface and manager for deferred updates.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
 /**
  * Interface that deferrable updates should implement. Basically required so we
  * can validate input on DeferredUpdates::addUpdate()
index f915b08..fdbda95 100644 (file)
@@ -6,6 +6,21 @@
  * since this file will not be executed during request startup for a compiled
  * MediaWiki.
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
 
index 39c5cab..4d7b968 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Delayed loading of deprecated global objects.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
 /**
  * Class to allow throwing wfDeprecated warnings
  * when people use globals that we do not want them to.
index cc68667..bca6985 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Device detection class
+ * Mobile device detection code
  *
  * Copyright © 2011 Patrick Reilly
  * http://www.mediawiki.org/
  * @file
  */
 
+/**
+ * Base for classes describing devices and their capabilities
+ * @since 1.20
+ */
+interface IDeviceProperties {
+       /**
+        * @return string: 'html' or 'wml'
+        */
+       function format();
+
+       /**
+        * @return bool
+        */
+       function supportsJavaScript();
+
+       /**
+        * @return bool
+        */
+       function supportsJQuery();
+
+       /**
+        * @return bool
+        */
+       function disableZoom();
+}
+
+/**
+ * @since 1.20
+ */
+interface IDeviceDetector {
+       /**
+        * @param $userAgent
+        * @param string $acceptHeader
+        * @return IDeviceProperties
+        */
+       function detectDeviceProperties( $userAgent, $acceptHeader = '' );
+
+       /**
+        * @param $deviceName
+        * @return IDeviceProperties
+        */
+       function getDeviceProperties( $deviceName );
+
+       /**
+        * @param $userAgent string
+        * @param $acceptHeader string
+        * @return string
+        */
+       function detectDeviceName( $userAgent, $acceptHeader = '' );
+}
+
+/**
+ * MediaWiki's default IDeviceProperties implementation
+ */
+final class DeviceProperties implements IDeviceProperties {
+       private $device;
+
+       public function __construct( array $deviceCapabilities ) {
+               $this->device = $deviceCapabilities;
+       }
+
+       /**
+        * @return string
+        */
+       function format() {
+               return $this->device['view_format'];
+       }
+
+       /**
+        * @return bool
+        */
+       function supportsJavaScript() {
+               return $this->device['supports_javascript'];
+       }
+
+       /**
+        * @return bool
+        */
+       function supportsJQuery() {
+               return $this->device['supports_jquery'];
+       }
+
+       /**
+        * @return bool
+        */
+       function disableZoom() {
+               return $this->device['disable_zoom'];
+       }
+}
+
 /**
  * Provides abstraction for a device.
  * A device can select which format a request should receive and
  * may be extended to provide access to particular device functionality.
  * @since 1.20
  */
-class DeviceDetection {
+class DeviceDetection implements IDeviceDetector {
 
-       /**
-        * @return array
-        */
-       public function getAvailableFormats() {
-               $formats = array (
+       private static $formats = array (
                        'html' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'default',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'default',
                                'supports_javascript' => false,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'capable' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'default',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'default',
                                'supports_javascript' => true,
                                'supports_jquery' => true,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'webkit' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'webkit',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'webkit',
                                'supports_javascript' => true,
                                'supports_jquery' => true,
                                'disable_zoom' => false,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'ie' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'default',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'default',
                                'supports_javascript' => true,
                                'supports_jquery' => true,
                                'disable_zoom' => false,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'android' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'default',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'android',
                                'supports_javascript' => true,
                                'supports_jquery' => true,
                                'disable_zoom' => false,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'iphone' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'webkit',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'iphone',
                                'supports_javascript' => true,
                                'supports_jquery' => true,
                                'disable_zoom' => false,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'iphone2' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'default',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'iphone2',
                                'supports_javascript' => true,
                                'supports_jquery' => true,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'native_iphone' => array (
                                'view_format' => 'html',
-                               'search_bar' => false,
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'default',
                                'supports_javascript' => true,
                                'supports_jquery' => true,
                                'disable_zoom' => false,
-                               'parser' => 'html',
-                               'disable_links' => false,
                        ),
                        'palm_pre' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'default',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'palm_pre',
                                'supports_javascript' => true,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'kindle' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'kindle',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'kindle',
                                'supports_javascript' => false,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'kindle2' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'kindle',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'kindle',
                                'supports_javascript' => false,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'blackberry' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'default',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'blackberry',
                                'supports_javascript' => true,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'blackberry-lt5' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'default',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'blackberry',
                                'supports_javascript' => false,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'netfront' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'simple',
-                               'footmenu' => 'simple',
-                               'with_layout' => 'application',
                                'css_file_name' => 'simple',
                                'supports_javascript' => false,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'wap2' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'simple',
-                               'footmenu' => 'simple',
-                               'with_layout' => 'application',
                                'css_file_name' => 'simple',
                                'supports_javascript' => false,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'psp' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'simple',
-                               'footmenu' => 'simple',
-                               'with_layout' => 'application',
                                'css_file_name' => 'psp',
                                'supports_javascript' => false,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'ps3' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'simple',
-                               'footmenu' => 'simple',
-                               'with_layout' => 'application',
                                'css_file_name' => 'simple',
                                'supports_javascript' => false,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'wii' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'wii',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'wii',
                                'supports_javascript' => true,
                                'supports_jquery' => true,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'operamini' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'simple',
-                               'footmenu' => 'simple',
-                               'with_layout' => 'application',
                                'css_file_name' => 'operamini',
                                'supports_javascript' => false,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'operamobile' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'simple',
-                               'footmenu' => 'simple',
-                               'with_layout' => 'application',
                                'css_file_name' => 'operamobile',
                                'supports_javascript' => true,
                                'supports_jquery' => true,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'nokia' => array (
                                'view_format' => 'html',
-                               'search_bar' => 'webkit',
-                               'footmenu' => 'default',
-                               'with_layout' => 'application',
                                'css_file_name' => 'nokia',
                                'supports_javascript' => true,
                                'supports_jquery' => false,
                                'disable_zoom' => true,
-                               'parser' => 'html',
-                               'disable_links' => true,
                        ),
                        'wml' => array (
                                'view_format' => 'wml',
-                               'search_bar' => 'wml',
+                               'css_file_name' => null,
                                'supports_javascript' => false,
                                'supports_jquery' => false,
-                               'parser' => 'wml',
+                               'disable_zoom' => true,
                        ),
                );
-               return $formats;
+
+       /**
+        * Returns an instance of detection class, overridable by extensions
+        * @return IDeviceDetector
+        */
+       public static function factory() {
+               global $wgDeviceDetectionClass;
+
+               static $instance = null;
+               if ( !$instance ) {
+                       $instance = new $wgDeviceDetectionClass();
+               }
+               return $instance;
        }
 
        /**
+        * @deprecated: Deprecated, will be removed once detectDeviceProperties() will be deployed everywhere on WMF
         * @param $userAgent
         * @param string $acceptHeader
         * @return array
@@ -310,112 +304,152 @@ class DeviceDetection {
        }
 
        /**
+        * @param $userAgent
+        * @param string $acceptHeader
+        * @return IDeviceProperties
+        */
+       public function detectDeviceProperties( $userAgent, $acceptHeader = '' ) {
+               $deviceName = $this->detectDeviceName( $userAgent, $acceptHeader );
+               return $this->getDeviceProperties( $deviceName );
+       }
+
+       /**
+        * @deprecated: Deprecated, will be removed once detectDeviceProperties() will be deployed everywhere on WMF
         * @param $formatName
         * @return array
         */
        public function getDevice( $formatName ) {
-               $format = $this->getAvailableFormats();
-               return ( isset( $format[$formatName] ) ) ? $format[$formatName] : array();
+               return ( isset( self::$formats[$formatName] ) ) ? self::$formats[$formatName] : array();
+       }
+
+       /**
+        * @param $deviceName
+        * @return IDeviceProperties
+        */
+       public function getDeviceProperties( $deviceName ) {
+               if ( isset( self::$formats[$deviceName] ) ) {
+                       return new DeviceProperties( self::$formats[$deviceName] );
+               } else {
+                       return new DeviceProperties( array(
+                               'view_format' => 'html',
+                               'css_file_name' => 'default',
+                               'supports_javascript' => true,
+                               'supports_jquery' => true,
+                               'disable_zoom' => true,
+                       ) );
+               }
        }
 
        /**
+        * @deprecated: Renamed to detectDeviceName()
         * @param $userAgent string
         * @param $acceptHeader string
         * @return string
         */
        public function detectFormatName( $userAgent, $acceptHeader = '' ) {
-               $formatName = '';
+               return $this->detectDeviceName( $userAgent, $acceptHeader );
+       }
 
+       /**
+        * @param $userAgent string
+        * @param $acceptHeader string
+        * @return string
+        */
+       public function detectDeviceName( $userAgent, $acceptHeader = '' ) {
+               wfProfileIn( __METHOD__ );
+
+               $deviceName = '';
                if ( preg_match( '/Android/', $userAgent ) ) {
-                       $formatName = 'android';
+                       $deviceName = 'android';
                        if ( strpos( $userAgent, 'Opera Mini' ) !== false ) {
-                               $formatName = 'operamini';
+                               $deviceName = 'operamini';
                        }
                } else if ( preg_match( '/MSIE 9.0/', $userAgent ) ||
                                preg_match( '/MSIE 8.0/', $userAgent ) ) {
-                       $formatName = 'ie';
+                       $deviceName = 'ie';
                } else if( preg_match( '/MSIE/', $userAgent ) ) {
-                       $formatName = 'html';
+                       $deviceName = 'html';
                } else if ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
-                       $formatName = 'operamobile';
+                       $deviceName = 'operamobile';
                } elseif ( preg_match( '/iPad.* Safari/', $userAgent ) ) {
-                       $formatName = 'iphone';
+                       $deviceName = 'iphone';
                } elseif ( preg_match( '/iPhone.* Safari/', $userAgent ) ) {
                        if ( strpos( $userAgent, 'iPhone OS 2' ) !== false ) {
-                               $formatName = 'iphone2';
+                               $deviceName = 'iphone2';
                        } else {
-                               $formatName = 'iphone';
+                               $deviceName = 'iphone';
                        }
                } elseif ( preg_match( '/iPhone/', $userAgent ) ) {
                        if ( strpos( $userAgent, 'Opera' ) !== false ) {
-                               $formatName = 'operamini';
+                               $deviceName = 'operamini';
                        } else {
-                               $formatName = 'native_iphone';
+                               $deviceName = 'native_iphone';
                        }
                } elseif ( preg_match( '/WebKit/', $userAgent ) ) {
                        if ( preg_match( '/Series60/', $userAgent ) ) {
-                               $formatName = 'nokia';
+                               $deviceName = 'nokia';
                        } elseif ( preg_match( '/webOS/', $userAgent ) ) {
-                               $formatName = 'palm_pre';
+                               $deviceName = 'palm_pre';
                        } else {
-                               $formatName = 'webkit';
+                               $deviceName = 'webkit';
                        }
                } elseif ( preg_match( '/Opera/', $userAgent ) ) {
                        if ( strpos( $userAgent, 'Nintendo Wii' ) !== false ) {
-                               $formatName = 'wii';
+                               $deviceName = 'wii';
                        } elseif ( strpos( $userAgent, 'Opera Mini' ) !== false ) {
-                               $formatName = 'operamini';
+                               $deviceName = 'operamini';
                        } elseif ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
-                               $formatName = 'iphone';
+                               $deviceName = 'iphone';
                        } else {
-                               $formatName = 'webkit';
+                               $deviceName = 'webkit';
                        }
                } elseif ( preg_match( '/Kindle\/1.0/', $userAgent ) ) {
-                       $formatName = 'kindle';
+                       $deviceName = 'kindle';
                } elseif ( preg_match( '/Kindle\/2.0/', $userAgent ) ) {
-                       $formatName = 'kindle2';
+                       $deviceName = 'kindle2';
                } elseif ( preg_match( '/Firefox/', $userAgent ) ) {
-                       $formatName = 'capable';
+                       $deviceName = 'capable';
                } elseif ( preg_match( '/NetFront/', $userAgent ) ) {
-                       $formatName = 'netfront';
+                       $deviceName = 'netfront';
                } elseif ( preg_match( '/SEMC-Browser/', $userAgent ) ) {
-                       $formatName = 'wap2';
+                       $deviceName = 'wap2';
                } elseif ( preg_match( '/Series60/', $userAgent ) ) {
-                       $formatName = 'wap2';
+                       $deviceName = 'wap2';
                } elseif ( preg_match( '/PlayStation Portable/', $userAgent ) ) {
-                       $formatName = 'psp';
+                       $deviceName = 'psp';
                } elseif ( preg_match( '/PLAYSTATION 3/', $userAgent ) ) {
-                       $formatName = 'ps3';
+                       $deviceName = 'ps3';
                } elseif ( preg_match( '/SAMSUNG/', $userAgent ) ) {
-                       $formatName = 'capable';
+                       $deviceName = 'capable';
                } elseif ( preg_match( '/BlackBerry/', $userAgent ) ) {
                        if( preg_match( '/BlackBerry[^\/]*\/[1-4]\./', $userAgent ) ) {
-                               $formatName = 'blackberry-lt5';
+                               $deviceName = 'blackberry-lt5';
                        } else {
-                               $formatName = 'blackberry';
+                               $deviceName = 'blackberry';
                        }
                }
 
-               if ( $formatName === '' ) {
+               if ( $deviceName === '' ) {
                        if ( strpos( $acceptHeader, 'application/vnd.wap.xhtml+xml' ) !== false ) {
                                // Should be wap2
-                               $formatName = 'html';
+                               $deviceName = 'html';
                        } elseif ( strpos( $acceptHeader, 'vnd.wap.wml' ) !== false ) {
-                               $formatName = 'wml';
+                               $deviceName = 'wml';
                        } else {
-                               $formatName = 'html';
+                               $deviceName = 'html';
                        }
                }
-               return $formatName;
+               wfProfileOut( __METHOD__ );
+               return $deviceName;
        }
 
        /**
         * @return array: List of all device-specific stylesheets
         */
        public function getCssFiles() {
-               $devices = $this->getAvailableFormats();
                $files = array();
-               foreach ( $devices as $dev ) {
+
+               foreach ( self::$formats as $dev ) {
                        if ( isset( $dev['css_file_name'] ) ) {
                                $files[] = $dev['css_file_name'];
                        }
index 5273c54..cc09d7f 100644 (file)
@@ -1,6 +1,22 @@
 <?php
 /**
- * Contains the EditPage class
+ * Page edition user interface.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
 
@@ -1068,7 +1084,6 @@ class EditPage {
                $bot = $wgUser->isAllowed( 'bot' ) && $this->bot;
                $status = $this->internalAttemptSave( $resultDetails, $bot );
                // FIXME: once the interface for internalAttemptSave() is made nicer, this should use the message in $status
-
                if ( $status->value == self::AS_SUCCESS_UPDATE || $status->value == self::AS_SUCCESS_NEW_ARTICLE ) {
                        $this->didSave = true;
                }
@@ -1144,6 +1159,14 @@ class EditPage {
                                $permission = $this->mTitle->isTalkPage() ? 'createtalk' : 'createpage';
                                throw new PermissionsError( $permission );
 
+                       default:
+                               // We don't recognize $status->value. The only way that can happen
+                               // is if an extension hook aborted from inside ArticleSave.
+                               // Render the status object into $this->hookError
+                               // FIXME this sucks, we should just use the Status object throughout
+                               $this->hookError = '<div class="error">' . $status->getWikitext() .
+                                       '</div>';
+                               return true;
                }
                return false;
        }
@@ -1545,8 +1568,17 @@ class EditPage {
                                wfProfileOut( __METHOD__ );
                                return $status;
                        } else {
-                               $this->isConflict = true;
-                               $doEditStatus->value = self::AS_END; // Destroys data doEdit() put in $status->value but who cares
+                               // Failure from doEdit()
+                               // Show the edit conflict page for certain recognized errors from doEdit(),
+                               // but don't show it for errors from extension hooks
+                               $errors = $doEditStatus->getErrorsArray();
+                               if ( in_array( $errors[0][0], array( 'edit-gone-missing', 'edit-conflict',
+                                       'edit-already-exists' ) ) )
+                               {
+                                       $this->isConflict = true;
+                                       // Destroys data doEdit() put in $status->value but who cares
+                                       $doEditStatus->value = self::AS_END;
+                               }
                                wfProfileOut( __METHOD__ );
                                return $doEditStatus;
                        }
index f7b6b96..9c472bf 100644 (file)
@@ -1,6 +1,21 @@
 <?php
 /**
- * Exception class and handler
+ * Exception class and handler.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
  */
@@ -462,7 +477,7 @@ class HttpError extends MWException {
                $this->content = $content;
        }
 
-       public function reportHTML() {
+       public function report() {
                $httpMessage = HttpStatus::getMessage( $this->httpCode );
 
                header( "Status: {$this->httpCode} {$httpMessage}" );
index f2eed4b..61d4ef7 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Data storage in external repositories.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
 /**
  * @defgroup ExternalStorage ExternalStorage
  */
index 241c43c..6f2b33e 100644 (file)
@@ -1,4 +1,24 @@
 <?php
+/**
+ * External storage in SQL database.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
 
 /**
  * DB accessable external objects
index 092ff7d..311e32b 100644 (file)
@@ -1,4 +1,24 @@
 <?php
+/**
+ * External storage using HTTP requests.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
 
 /**
  * Example class for HTTP accessable external objects.
index bea0e7e..9a01deb 100644 (file)
@@ -18,6 +18,8 @@
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  */
 
 /**
index 369c1ee..60f7600 100644 (file)
@@ -107,8 +107,6 @@ class FakeTitle extends Title {
        function moveNoAuth( &$nt ) { $this->error(); }
        function isValidMoveOperation( &$nt, $auth = true, $reason = '' ) { $this->error(); }
        function moveTo( &$nt, $auth = true, $reason = '', $createRedirect = true ) { $this->error(); }
-       function moveOverExistingRedirect( &$nt, $reason = '', $createRedirect = true ) { $this->error(); }
-       function moveToNewTitle( &$nt, $reason = '', $createRedirect = true ) { $this->error(); }
        function moveSubpages( $nt, $auth = true, $reason = '', $createRedirect = true ) { $this->error(); }
        function isSingleRevRedirect() { $this->error(); }
        function isValidMoveTarget( $nt ) { $this->error(); }
index 7aec2e2..cc93aa4 100644 (file)
@@ -30,7 +30,7 @@ if ( !defined( 'MEDIAWIKI' ) ) {
 /**
  * Compatibility functions
  *
- * We support PHP 5.2.3 and up.
+ * We support PHP 5.3.2 and up.
  * Re-implementations of newer functions or functions in non-standard
  * PHP extensions may be included here.
  */
@@ -2198,13 +2198,7 @@ function wfResetOutputBuffers( $resetGzipEncoding = true ) {
                        if( $status['name'] == 'ob_gzhandler' ) {
                                // Reset the 'Content-Encoding' field set by this handler
                                // so we can start fresh.
-                               if ( function_exists( 'header_remove' ) ) {
-                                       // Available since PHP 5.3.0
-                                       header_remove( 'Content-Encoding' );
-                               } else {
-                                       // We need to provide a valid content-coding. See bug 28069
-                                       header( 'Content-Encoding: identity' );
-                               }
+                               header_remove( 'Content-Encoding' );
                                break;
                        }
                }
index e56ca2e..c149965 100644 (file)
@@ -333,6 +333,9 @@ class HTMLForm extends ContextSource {
                }
 
                $callback = $this->mSubmitCallback;
+               if ( !is_callable( $callback ) ) {
+                       throw new MWException( 'HTMLForm: no submit callback provided. Use setSubmitCallback() to set one.' );
+               }
 
                $data = $this->filterDataForSubmit( $this->mFieldData );
 
index fbae861..201a9e5 100644 (file)
@@ -778,12 +778,6 @@ class CurlHttpRequest extends MWHttpRequest {
                $this->parseHeader();
                $this->setStatus();
 
-               if ( isset( $this->respHeaders['content-length'] ) ) {
-                       if ( strlen( $this->content ) < $this->getResponseHeader( 'content-length' ) ) {
-                               $this->status->fatal( 'http-truncated-body' );
-                       }
-               }
-
                return $this->status;
        }
 
index e1c1f6d..1828249 100644 (file)
@@ -133,7 +133,7 @@ class IP {
        }
 
        /**
-        * Convert an IP into a nice standard form.
+        * Convert an IP into a verbose, uppercase, normalized form.
         * IPv6 addresses in octet notation are expanded to 8 words.
         * IPv4 addresses are just trimmed.
         *
@@ -185,6 +185,49 @@ class IP {
                return $ip;
        }
 
+       /**
+        * Prettify an IP for display to end users.
+        * This will make it more compact and lower-case.
+        *
+        * @param $ip string
+        * @return string
+        */
+       public static function prettifyIP( $ip ) {
+               $ip = self::sanitizeIP( $ip ); // normalize (removes '::')
+               if ( self::isIPv6( $ip ) ) {
+                       // Split IP into an address and a CIDR
+                       if ( strpos( $ip, '/' ) !== false ) {
+                               list( $ip, $cidr ) = explode( '/', $ip, 2 );
+                       } else {
+                               list( $ip, $cidr ) = array( $ip, '' );
+                       }
+                       // Get the largest slice of words with multiple zeros
+                       $offset = 0;
+                       $longest = $longestPos = false;
+                       while ( preg_match(
+                               '!(?:^|:)0(?::0)+(?:$|:)!', $ip, $m, PREG_OFFSET_CAPTURE, $offset
+                       ) ) {
+                               list( $match, $pos ) = $m[0]; // full match
+                               if ( strlen( $match ) > strlen( $longest ) ) {
+                                       $longest = $match;
+                                       $longestPos = $pos;
+                               }
+                               $offset += ( $pos + strlen( $match ) ); // advance
+                       }
+                       if ( $longest !== false ) {
+                               // Replace this portion of the string with the '::' abbreviation
+                               $ip = substr_replace( $ip, '::', $longestPos, strlen( $longest ) );
+                       }
+                       // Add any CIDR back on
+                       if ( $cidr !== '' ) {
+                               $ip = "{$ip}/{$cidr}";
+                       }
+                       // Convert to lower case to make it more readable
+                       $ip = strtolower( $ip );
+               }
+               return $ip;
+       }
+
        /**
         * Given a host/port string, like one might find in the host part of a URL
         * per RFC 2732, split the hostname part and the port part and return an
index 247acff..d391ead 100644 (file)
@@ -20,9 +20,6 @@
  * @file
  */
 
-if ( ! defined( 'MEDIAWIKI' ) )
-       die( 1 );
-
 /**
  * Image gallery
  *
index 43eca70..c0b3d7f 100644 (file)
@@ -96,7 +96,7 @@ class ImagePage extends Article {
         * Include body text only; none of the image extras
         */
        public function render() {
-               $this->getContext()->setArticleBodyOnly( true );
+               $this->getContext()->getOutput()->setArticleBodyOnly( true );
                parent::view();
        }
 
@@ -348,18 +348,30 @@ class ImagePage extends Article {
                                                # Note that $height <= $maxHeight now, but might not be identical
                                                # because of rounding.
                                        }
-                                       $msgbig  = wfMsgHtml( 'show-big-image' );
+                                       $msgbig = wfMsgHtml( 'show-big-image' );
+                                       if ( $this->displayImg->getRepo()->canTransformVia404() ) {
+                                               $thumbSizes = $wgImageLimits;
+                                       } else {
+                                               # Creating thumb links triggers thumbnail generation.
+                                               # Just generate the thumb for the current users prefs.
+                                               $thumbOption = $user->getOption( 'thumbsize' );
+                                               $thumbSizes = array( isset( $wgImageLimits[$thumbOption] )
+                                                       ? $wgImageLimits[$thumbOption]
+                                                       : $wgImageLimits[User::getDefaultOption( 'thumbsize' )] );
+                                       }
+                                       # Generate thumbnails or thumbnail links as needed...
                                        $otherSizes = array();
-                                       foreach ( $wgImageLimits as $size ) {
-                                               if ( $size[0] < $width_orig && $size[1] < $height_orig &&
-                                                               $size[0] != $width && $size[1] != $height ) {
+                                       foreach ( $thumbSizes as $size ) {
+                                               if ( $size[0] < $width_orig && $size[1] < $height_orig
+                                                       && $size[0] != $width && $size[1] != $height )
+                                               {
                                                        $otherSizes[] = $this->makeSizeLink( $params, $size[0], $size[1] );
                                                }
                                        }
                                        $msgsmall = wfMessage( 'show-big-image-preview' )->
                                                rawParams( $this->makeSizeLink( $params, $width, $height ) )->
                                                parse();
-                                       if ( count( $otherSizes ) && $this->displayImg->getRepo()->canTransformVia404() ) {
+                                       if ( count( $otherSizes ) ) {
                                                $msgsmall .= ' ' .
                                                Html::rawElement( 'span', array( 'class' => 'mw-filepage-other-resolutions' ),
                                                        wfMessage( 'show-big-image-other' )->rawParams( $lang->pipeList( $otherSizes ) )->
@@ -1089,7 +1101,10 @@ class ImageHistoryList extends ContextSource {
                // Image dimensions + size
                $row .= '<td>';
                $row .= htmlspecialchars( $file->getDimensionsString() );
-               $row .= ' <span style="white-space: nowrap;">(' . Linker::formatSize( $file->getSize() ) . ')</span>';
+               $row .= $this->getContext()->msg( 'word-separator' )->plain();
+               $row .= '<span style="white-space: nowrap;">';
+               $row .= $this->getContext()->msg( 'parentheses' )->rawParams( Linker::formatSize( $file->getSize() ) )->plain();
+               $row .= '</span>';
                $row .= '</td>';
 
                // Uploading user
index ba38f37..f838ad0 100644 (file)
@@ -306,8 +306,8 @@ class MagicWord {
                $wgContLang->getMagic( $this );
                if ( !$this->mSynonyms ) {
                        $this->mSynonyms = array( 'dkjsagfjsgashfajsh' );
-                       #throw new MWException( "Error: invalid magic word '$id'" );
-                       wfDebugLog( 'exception', "Error: invalid magic word '$id'\n" );
+                       throw new MWException( "Error: invalid magic word '$id'" );
+                       #wfDebugLog( 'exception', "Error: invalid magic word '$id'\n" );
                }
                wfProfileOut( __METHOD__ );
        }
index b1bd14a..560588f 100644 (file)
  * @file
  */
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( 1 );
-}
-
 /**
  * This class should be covered by a general architecture document which does
  * not exist as of January 2011.  This is one of the Core classes and should
@@ -1682,18 +1678,6 @@ class OutputPage extends ContextSource {
                return $cookies;
        }
 
-       /**
-        * Return whether this page is not cacheable because "useskin" or "uselang"
-        * URL parameters were passed.
-        *
-        * @return Boolean
-        */
-       function uncacheableBecauseRequestVars() {
-               $request = $this->getRequest();
-               return $request->getText( 'useskin', false ) === false
-                       && $request->getText( 'uselang', false ) === false;
-       }
-
        /**
         * Check if the request has a cache-varying cookie header
         * If it does, it's very important that we don't allow public caching
@@ -1861,7 +1845,7 @@ class OutputPage extends ContextSource {
                        $response->header( $this->getXVO() );
                }
 
-               if( !$this->uncacheableBecauseRequestVars() && $this->mEnableClientCache ) {
+               if( $this->mEnableClientCache ) {
                        if(
                                $wgUseSquid && session_id() == '' && !$this->isPrintable() &&
                                $this->mSquidMaxage != 0 && !$this->haveCacheVaryCookies()
index 9ec3b64..3eee191 100644 (file)
@@ -371,7 +371,7 @@ class Preferences {
 
                        $emailAddress = $user->getEmail() ? htmlspecialchars( $user->getEmail() ) : '';
                        if ( $wgAuth->allowPropChange( 'emailaddress' ) ) {
-                               $emailAddress .= $emailAddress == '' ? $link : " ($link)";
+                               $emailAddress .= $emailAddress == '' ? $link : ( ' ' . $context->msg( 'parentheses' )->rawParams( $link )->plain() );
                        }
 
 
index 1c42b1c..4440aac 100644 (file)
@@ -499,7 +499,7 @@ abstract class QueryPage extends SpecialPage {
                                        $updateddate = $lang->userDate( $ts, $user );
                                        $updatedtime = $lang->userTime( $ts, $user );
                                        $out->addMeta( 'Data-Cache-Time', $ts );
-                                       $out->addInlineScript( "var dataCacheTime = '$ts';" );
+                                       $out->addJsConfigVars( 'dataCacheTime', $ts );
                                        $out->addWikiMsg( 'perfcachedts', $updated, $updateddate, $updatedtime, $maxResults );
                                } else {
                                        $out->addWikiMsg( 'perfcached', $maxResults );
@@ -508,7 +508,7 @@ abstract class QueryPage extends SpecialPage {
                                # If updates on this page have been disabled, let the user know
                                # that the data set won't be refreshed for now
                                if ( is_array( $wgDisableQueryPageUpdate ) && in_array( $this->getName(), $wgDisableQueryPageUpdate ) ) {
-                                       $out->addWikiMsg( 'querypage-no-updates' );
+                                       $out->wrapWikiMsg( "<div class=\"mw-querypage-no-updates\">\n$1\n</div>", 'querypage-no-updates' );
                                }
                        }
                }
index 53b792e..5fd1f5a 100644 (file)
@@ -1298,7 +1298,8 @@ class Revision {
 
                wfProfileIn( __METHOD__ );
 
-               $fields = array( 'page_latest', 'rev_text_id', 'rev_len', 'rev_sha1' );
+               $fields = array( 'page_latest', 'page_namespace', 'page_title',
+                                               'rev_text_id', 'rev_len', 'rev_sha1' );
 
                if ( $wgContentHandlerUseDB ) {
                        $fields[] = 'rev_content_model';
@@ -1322,7 +1323,7 @@ class Revision {
                                'text_id'    => $current->rev_text_id,
                                'parent_id'  => $current->page_latest,
                                'len'        => $current->rev_len,
-                               'sha1'       => $current->rev_sha1,
+                               'sha1'       => $current->rev_sha1
                        );
 
                        if ( $wgContentHandlerUseDB ) {
@@ -1331,6 +1332,7 @@ class Revision {
                        }
 
                        $revision = new Revision( $row );
+                       $revision->setTitle( Title::makeTitle( $current->page_namespace, $current->page_title ) );
                } else {
                        $revision = null;
                }
index 677664a..64cf569 100644 (file)
  * @defgroup Skins Skins
  */
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( 1 );
-}
-
 /**
  * The main skin class that provide methods and properties for all other skins.
  * This base class is also the "Standard" skin.
index 1deaf89..e1ec897 100644 (file)
  * @file
  */
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( 1 );
-}
-
 class SkinLegacy extends SkinTemplate {
        var $useHeadElement = true;
        protected $mWatchLinkNum = 0; // Appended to end of watch link id's
index 9807237..114a55c 100644 (file)
  * @file
  */
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( 1 );
-}
-
 /**
  * Wrapper object for MediaWiki's localization functions,
  * to be passed to the template engine.
index 7a6c0be..9e6717f 100644 (file)
@@ -626,7 +626,7 @@ class SpecialPage {
                } else {
                        $msg = $summaryMessageKey;
                }
-               if ( !$this->msg( $msg )->isBlank() && !$this->including() ) {
+               if ( !$this->msg( $msg )->isDisabled() && !$this->including() ) {
                        $this->getOutput()->wrapWikiMsg(
                                "<div class='mw-specialpage-summary'>\n$1\n</div>", $msg );
                }
index f0204df..6d36a43 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 /**
- * See docs/deferred.txt
+ * Base code for update jobs that put some secondary data extracted
+ * from article content into the database.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
+ */
+
+/**
  * Abstract base class for update jobs that put some secondary data extracted
  * from article content into the database.
  */
index 1681c4a..803ad14 100644 (file)
@@ -210,7 +210,15 @@ class Title {
         */
        public static function newFromID( $id, $flags = 0 ) {
                $db = ( $flags & self::GAID_FOR_UPDATE ) ? wfGetDB( DB_MASTER ) : wfGetDB( DB_SLAVE );
-               $row = $db->selectRow( 'page', '*', array( 'page_id' => $id ), __METHOD__ );
+               $row = $db->selectRow(
+                       'page',
+                       array(
+                               'page_namespace', 'page_title', 'page_id',
+                               'page_len', 'page_is_redirect', 'page_latest',
+                       ),
+                       array( 'page_id' => $id ),
+                       __METHOD__
+               );
                if ( $row !== false ) {
                        $title = Title::newFromRow( $row );
                } else {
@@ -2599,7 +2607,10 @@ class Title {
                                        $this->mRestrictions['edit'] = explode( ',', trim( $temp[0] ) );
                                        $this->mRestrictions['move'] = explode( ',', trim( $temp[0] ) );
                                } else {
-                                       $this->mRestrictions[$temp[0]] = explode( ',', trim( $temp[1] ) );
+                                       $restriction = trim( $temp[1] );
+                                       if( $restriction != '' ) { //some old entries are empty
+                                               $this->mRestrictions[$temp[0]] = explode( ',', $restriction );
+                                       }
                                }
                        }
 
@@ -3534,12 +3545,7 @@ class Title {
                $protected = $this->isProtected();
 
                // Do the actual move
-               $err = $this->moveToInternal( $nt, $reason, $createRedirect );
-               if ( is_array( $err ) ) {
-                       # @todo FIXME: What about the File we have already moved?
-                       $dbw->rollback( __METHOD__ );
-                       return $err;
-               }
+               $this->moveToInternal( $nt, $reason, $createRedirect );
 
                // Refresh the sortkey for this row.  Be careful to avoid resetting
                // cl_timestamp, which may disturb time-based lists on some sites.
@@ -3615,6 +3621,7 @@ class Title {
         * @param $reason String The reason for the move
         * @param $createRedirect Bool Whether to leave a redirect at the old title.  Ignored
         *   if the user doesn't have the suppressredirect right
+        * @throws MWException
         */
        private function moveToInternal( &$nt, $reason = '', $createRedirect = true ) {
                global $wgUser, $wgContLang;
@@ -4019,7 +4026,7 @@ class Title {
                $pageId = $this->getArticleID( $flags );
                if ( $pageId ) {
                        $db = ( $flags & self::GAID_FOR_UPDATE ) ? wfGetDB( DB_MASTER ) : wfGetDB( DB_SLAVE );
-                       $row = $db->selectRow( 'revision', '*',
+                       $row = $db->selectRow( 'revision', Revision::selectFields(),
                                array( 'rev_page' => $pageId ),
                                __METHOD__,
                                array( 'ORDER BY' => 'rev_timestamp ASC', 'LIMIT' => 1 )
index 5de4b2c..84f02af 100644 (file)
@@ -1028,7 +1028,7 @@ class User {
                }
 
                $dbr = wfGetDB( DB_MASTER );
-               $s = $dbr->selectRow( 'user', '*', array( 'user_id' => $this->mId ), __METHOD__ );
+               $s = $dbr->selectRow( 'user', self::selectFields(), array( 'user_id' => $this->mId ), __METHOD__ );
 
                wfRunHooks( 'UserLoadFromDatabase', array( $this, &$s ) );
 
@@ -4018,7 +4018,7 @@ class User {
 
                        $res = $dbr->select(
                                'user_properties',
-                               '*',
+                               array( 'up_property', 'up_value' ),
                                array( 'up_user' => $this->getId() ),
                                __METHOD__
                        );
@@ -4141,4 +4141,28 @@ class User {
 
                return $ret;
        }
+
+       /**
+        * Return the list of user fields that should be selected to create
+        * a new user object.
+        * @return array
+        */
+       public static function selectFields() {
+               return array(
+                       'user_id',
+                       'user_name',
+                       'user_real_name',
+                       'user_password',
+                       'user_newpassword',
+                       'user_newpass_time',
+                       'user_email',
+                       'user_touched',
+                       'user_token',
+                       'user_email_authenticated',
+                       'user_email_token',
+                       'user_email_token_expires',
+                       'user_registration',
+                       'user_editcount',
+               );
+       }
 }
index 39c1b1b..7d0dd4a 100644 (file)
@@ -981,7 +981,8 @@ HTML;
 
        /**
         * Parse the Accept-Language header sent by the client into an array
-        * @return array array( languageCode => q-value ) sorted by q-value in descending order
+        * @return array array( languageCode => q-value ) sorted by q-value in descending order then
+        *                                                appearing time in the header in ascending order.
         * May contain the "language" '*', which applies to languages other than those explicitly listed.
         * This is aligned with rfc2616 section 14.4
         */
@@ -1004,19 +1005,25 @@ HTML;
                        return array();
                }
 
-               // Create a list like "en" => 0.8
-               $langs = array_combine( $lang_parse[1], $lang_parse[4] );
+               $langcodes = $lang_parse[1];
+               $qvalues = $lang_parse[4];
+               $indices = range( 0, count( $lang_parse[1] ) - 1 );
                // Set default q factor to 1
-               foreach ( $langs as $lang => $val ) {
-                       if ( $val === '' ) {
-                               $langs[$lang] = 1;
-                       } elseif ( $val == 0 ) {
-                               unset($langs[$lang]);
+               foreach ( $indices as $index ) {
+                       if ( $qvalues[$index] === '' ) {
+                               $qvalues[$index] = 1;
+                       } elseif ( $qvalues[$index] == 0 ) {
+                               $langcodes[$index] = '';
                        }
                }
 
                // Sort list
-               arsort( $langs, SORT_NUMERIC );
+               array_multisort( $qvalues, SORT_DESC, SORT_NUMERIC, $indices, $langcodes );
+               // Create a list like "en" => 0.8
+               $langs = array_combine( $langcodes, $qvalues );
+               if ( isset( $langs[''] ) ) {
+                       unset( $langs[''] );
+               }
                return $langs;
        }
 
index dae465e..a7a3170 100644 (file)
@@ -2485,21 +2485,7 @@ class WikiPage extends Page {
                        return WikiPage::DELETE_NO_REVISIONS;
                }
 
-               # update site status
-               DeferredUpdates::addUpdate( new SiteStatsUpdate( 0, 1, - (int)$this->isCountable(), -1 ) );
-
-               # remove secondary indexes, etc
-               $updates = $this->getDeletionUpdates( );
-               DataUpdate::runUpdates( $updates );
-
-               # Clear caches
-               WikiPage::onArticleDelete( $this->mTitle );
-
-               # Reset this object
-               $this->clear();
-
-               # Clear the cached article id so the interface doesn't act like we exist
-               $this->mTitle->resetArticleID( 0 );
+               $this->doDeleteUpdates( $id );
 
                # Log the deletion, if the page was suppressed, log it at Oversight instead
                $logtype = $suppress ? 'suppress' : 'delete';
@@ -2519,6 +2505,29 @@ class WikiPage extends Page {
                return WikiPage::DELETE_SUCCESS;
        }
 
+       /**
+        * Do some database updates after deletion
+        *
+        * @param $id Int: page_id value of the page being deleted (B/C, currently unused)
+        */
+       public function doDeleteUpdates( $id ) {
+               # update site status
+               DeferredUpdates::addUpdate( new SiteStatsUpdate( 0, 1, - (int)$this->isCountable(), -1 ) );
+
+               # remove secondary indexes, etc
+               $updates = $this->getDeletionUpdates( );
+               DataUpdate::runUpdates( $updates );
+
+               # Clear caches
+               WikiPage::onArticleDelete( $this->mTitle );
+
+               # Reset this object
+               $this->clear();
+
+               # Clear the cached article id so the interface doesn't act like we exist
+               $this->mTitle->resetArticleID( 0 );
+       }
+
        /**
         * Roll back the most recent consecutive set of edits to a page
         * from the same user; fails if there are no eligible edits to
index 4e37381..d43e5fb 100644 (file)
@@ -36,7 +36,11 @@ class ViewAction extends FormlessAction {
        public function show(){
                global $wgSquidMaxage;
 
-               $this->getOutput()->setSquidMaxage( $wgSquidMaxage );
+               $request = $this->getRequest();
+               if ( $request->getFullRequestURL() == $this->getTitle()->getInternalURL() ) {
+                       $this->getOutput()->setSquidMaxage( $wgSquidMaxage );
+               }
+
                $this->page->view();
        }
 
index 9a2f255..e229ef0 100644 (file)
@@ -100,7 +100,7 @@ class ApiBlock extends ApiBase {
 
                $block = Block::newFromTarget( $target );
                if( $block instanceof Block ){
-                       $res['expiry'] = $block->mExpiry == wfGetDB( DB_SLAVE )->getInfinity()
+                       $res['expiry'] = $block->mExpiry == $this->getDB()->getInfinity()
                                ? 'infinite'
                                : wfTimestamp( TS_ISO_8601, $block->mExpiry );
                        $res['id'] = $block->getId();
index 95a17ec..c1334e9 100644 (file)
@@ -344,16 +344,11 @@ class ApiEditPage extends ApiBase {
                                $this->dieUsageMsg( 'summaryrequired' );
 
                        case EditPage::AS_END:
+                       default:
                                // $status came from WikiPage::doEdit()
                                $errors = $status->getErrorsArray();
                                $this->dieUsageMsg( $errors[0] ); // TODO: Add new errors to message map
                                break;
-                       default:
-                               if ( is_string( $status->value ) && strlen( $status->value ) ) {
-                                       $this->dieUsage( "An unknown return value was returned by Editpage. The code returned was \"{$status->value}\"" , $status->value );
-                               } else {
-                                       $this->dieUsageMsg( array( 'unknownerror', $status->value ) );
-                               }
                }
                $apiResult->addValue( null, $this->getModuleName(), $r );
        }
index 8f4abc1..ef2c54f 100644 (file)
@@ -215,7 +215,8 @@ class ApiFormatXml extends ApiFormatBase {
        public function getParamDescription() {
                return array(
                        'xmldoublequote' => 'If specified, double quotes all attributes and content',
-                       'xslt' => 'If specified, adds <xslt> as stylesheet',
+                       'xslt' => 'If specified, adds <xslt> as stylesheet. This should be a wiki page '
+                               . 'in the MediaWiki namespace whose page name ends with ".xsl"',
                        'includexmlnamespace' => 'If specified, adds an XML namespace'
                );
        }
index 7d567ee..fbf2f3e 100644 (file)
@@ -716,6 +716,9 @@ class ApiMain extends ApiBase {
                $module->profileOut();
 
                if ( !$this->mInternalMode ) {
+                       //append Debug information
+                       MWDebug::appendDebugInfoToApiResult( $this->getContext(), $this->getResult() );
+
                        // Print result data
                        $this->printResult( false );
                }
index cc86c76..598f9ad 100644 (file)
@@ -481,6 +481,7 @@ class ApiPageSet extends ApiQueryBase {
                        ApiBase::dieDebug( __METHOD__, 'Missing $processTitles parameter when $remaining is provided' );
                }
 
+               $usernames = array();
                if ( $res ) {
                        foreach ( $res as $row ) {
                                $pageId = intval( $row->page_id );
@@ -496,6 +497,11 @@ class ApiPageSet extends ApiQueryBase {
 
                                // Store any extra fields requested by modules
                                $this->processDbRow( $row );
+
+                               // Need gender information
+                               if( MWNamespace::hasGenderDistinction( $row->page_namespace ) ) {
+                                       $usernames[] = $row->page_title;
+                               }
                        }
                }
 
@@ -510,6 +516,11 @@ class ApiPageSet extends ApiQueryBase {
                                                $this->mMissingTitles[$this->mFakePageId] = $title;
                                                $this->mFakePageId--;
                                                $this->mTitles[] = $title;
+
+                                               // need gender information
+                                               if( MWNamespace::hasGenderDistinction( $ns ) ) {
+                                                       $usernames[] = $dbkey;
+                                               }
                                        }
                                }
                        } else {
@@ -521,6 +532,10 @@ class ApiPageSet extends ApiQueryBase {
                                }
                        }
                }
+
+               // Get gender information
+               $genderCache = GenderCache::singleton();
+               $genderCache->doQuery( $usernames, __METHOD__ );
        }
 
        /**
@@ -664,6 +679,9 @@ class ApiPageSet extends ApiQueryBase {
         * @return LinkBatch
         */
        private function processTitlesArray( $titles ) {
+               $genderCache = GenderCache::singleton();
+               $genderCache->doTitlesArray( $titles, __METHOD__ );
+
                $linkBatch = new LinkBatch();
 
                foreach ( $titles as $title ) {
index d156468..286f191 100644 (file)
@@ -56,7 +56,7 @@ class ApiProtect extends ApiBase {
                }
 
                $restrictionTypes = $titleObj->getRestrictionTypes();
-               $dbr = wfGetDB( DB_SLAVE );
+               $db = $this->getDB();
 
                $protections = array();
                $expiryarray = array();
@@ -80,7 +80,7 @@ class ApiProtect extends ApiBase {
                        }
 
                        if ( in_array( $expiry[$i], array( 'infinite', 'indefinite', 'never' ) ) ) {
-                               $expiryarray[$p[0]] = $dbr->getInfinity();
+                               $expiryarray[$p[0]] = $db->getInfinity();
                        } else {
                                $exp = strtotime( $expiry[$i] );
                                if ( $exp < 0 || !$exp ) {
@@ -94,7 +94,7 @@ class ApiProtect extends ApiBase {
                                $expiryarray[$p[0]] = $exp;
                        }
                        $resultProtections[] = array( $p[0] => $protections[$p[0]],
-                                       'expiry' => ( $expiryarray[$p[0]] == $dbr->getInfinity() ?
+                                       'expiry' => ( $expiryarray[$p[0]] == $db->getInfinity() ?
                                                                'infinite' :
                                                                wfTimestamp( TS_ISO_8601, $expiryarray[$p[0]] ) ) );
                }
index 7e7fc40..f04d5b2 100644 (file)
@@ -76,16 +76,16 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                        $this->dieUsage( 'alcontinue and alfrom cannot be used together', 'params' );
                }
                if ( !is_null( $params['continue'] ) ) {
-                       $arr = explode( '|', $params['continue'] );
-                       if ( count( $arr ) != 2 ) {
+                       $continueArr = explode( '|', $params['continue'] );
+                       if ( count( $continueArr ) != 2 ) {
                                $this->dieUsage( 'Invalid continue parameter', 'badcontinue' );
                        }
-                       $from = $this->getDB()->strencode( $this->titleToKey( $arr[0] ) );
-                       $id = intval( $arr[1] );
+                       $continueTitle = $db->addQuotes( $this->titleToKey( $continueArr[0] ) );
+                       $continueFrom = intval( $continueArr[1] );
                        $this->addWhere(
-                               "pl_title > '$from' OR " .
-                               "(pl_title = '$from' AND " .
-                               "pl_from > $id)"
+                               "pl_title > $continueTitle OR " .
+                               "(pl_title = $continueTitle AND " .
+                               "pl_from > $continueFrom)"
                        );
                }
 
index 01cb15a..e110e67 100644 (file)
@@ -154,9 +154,9 @@ class ApiQueryAllUsers extends ApiQueryBase {
 
                        $this->addFields( 'COUNT(*) AS recentedits' );
 
-                       $this->addWhere( "rc_log_type IS NULL OR rc_log_type != 'newusers'" );
+                       $this->addWhere( 'rc_log_type IS NULL OR rc_log_type != ' . $db->addQuotes( 'newusers' ) );
                        $timestamp = $db->timestamp( wfTimestamp( TS_UNIX ) - $wgActiveUserDays*24*3600 );
-                       $this->addWhere( "rc_timestamp >= {$db->addQuotes( $timestamp )}" );
+                       $this->addWhere( 'rc_timestamp >= ' . $db->addQuotes( $timestamp ) );
 
                        $this->addOption( 'GROUP BY', $userFieldToSort );
                }
@@ -361,7 +361,7 @@ class ApiQueryAllUsers extends ApiQueryBase {
                        'dir' => 'Direction to sort in',
                        'group' => 'Limit users to given group name(s)',
                        'excludegroup' => 'Exclude users in given group name(s)',
-                       'rights' => 'Limit users to given right(s)',
+                       'rights' => 'Limit users to given right(s) (does not include rights granted by implicit or auto-promoted groups like *, user, or autoconfirmed)',
                        'prop' => array(
                                'What pieces of information to include.',
                                ' blockinfo      - Adds the information about a current block on the user',
index 8903714..5505692 100644 (file)
@@ -188,25 +188,25 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                $titleWhere = array();
                foreach ( $this->redirTitles as $t ) {
                        $titleWhere[] = "{$this->bl_title} = " . $db->addQuotes( $t->getDBkey() ) .
-                                       ( $this->hasNS ? " AND {$this->bl_ns} = '{$t->getNamespace()}'" : '' );
+                                       ( $this->hasNS ? " AND {$this->bl_ns} = {$t->getNamespace()}" : '' );
                }
                $this->addWhere( $db->makeList( $titleWhere, LIST_OR ) );
                $this->addWhereFld( 'page_namespace', $this->params['namespace'] );
 
                if ( !is_null( $this->redirID ) ) {
                        $first = $this->redirTitles[0];
-                       $title = $db->strencode( $first->getDBkey() );
+                       $title = $db->addQuotes( $first->getDBkey() );
                        $ns = $first->getNamespace();
                        $from = $this->redirID;
                        if ( $this->hasNS ) {
                                $this->addWhere( "{$this->bl_ns} > $ns OR " .
                                                "({$this->bl_ns} = $ns AND " .
-                                               "({$this->bl_title} > '$title' OR " .
-                                               "({$this->bl_title} = '$title' AND " .
+                                               "({$this->bl_title} > $title OR " .
+                                               "({$this->bl_title} = $title AND " .
                                                "{$this->bl_from} >= $from)))" );
                        } else {
-                               $this->addWhere( "{$this->bl_title} > '$title' OR " .
-                                               "({$this->bl_title} = '$title' AND " .
+                               $this->addWhere( "{$this->bl_title} > $title OR " .
+                                               "({$this->bl_title} = $title AND " .
                                                "{$this->bl_from} >= $from)" );
                        }
                }
index 824589c..8c287d6 100644 (file)
@@ -103,10 +103,15 @@ class ApiQueryBlocks extends ApiQueryBase {
                        }
                        $prefix = substr( $lower, 0, 4 );
 
+                       # Fairly hard to make a malicious SQL statement out of hex characters,
+                       # but it is good practice to add quotes
+                       $lower = $db->addQuotes( $lower );
+                       $upper = $db->addQuotes( $upper );
+
                        $this->addWhere( array(
                                'ipb_range_start' . $db->buildLike( $prefix, $db->anyString() ),
-                               "ipb_range_start <= '$lower'",
-                               "ipb_range_end >= '$upper'",
+                               'ipb_range_start <= ' . $lower,
+                               'ipb_range_end >= ' . $upper,
                                'ipb_auto' => 0
                        ) );
                }
index 0f7800f..35b5645 100644 (file)
@@ -97,7 +97,7 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                $dir = in_array( $params['dir'], array( 'asc', 'ascending', 'newer' ) ) ? 'newer' : 'older';
 
                if ( $params['sort'] == 'timestamp' ) {
-                       $this->addWhereRange( 'cl_timestamp',
+                       $this->addTimestampWhereRange( 'cl_timestamp',
                                $dir,
                                $params['start'],
                                $params['end'] );
index c25f561..6912ddc 100644 (file)
@@ -155,7 +155,7 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                        $this->addWhereFld( 'ar_user_text', $params['user'] );
                } elseif ( !is_null( $params['excludeuser'] ) ) {
                        $this->addWhere( 'ar_user_text != ' .
-                               $this->getDB()->addQuotes( $params['excludeuser'] ) );
+                               $db->addQuotes( $params['excludeuser'] ) );
                }
 
                if ( !is_null( $params['continue'] ) && ( $mode == 'all' || $mode == 'revs' ) ) {
@@ -164,14 +164,14 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                                $this->dieUsage( 'Invalid continue param. You should pass the original value returned by the previous query', 'badcontinue' );
                        }
                        $ns = intval( $cont[0] );
-                       $title = $this->getDB()->strencode( $this->titleToKey( $cont[1] ) );
-                       $ts = $this->getDB()->strencode( $cont[2] );
+                       $title = $db->addQuotes( $this->titleToKey( $cont[1] ) );
+                       $ts = $db->addQuotes( $db->timestamp( $cont[2] ) );
                        $op = ( $dir == 'newer' ? '>' : '<' );
                        $this->addWhere( "ar_namespace $op $ns OR " .
                                        "(ar_namespace = $ns AND " .
-                                       "(ar_title $op '$title' OR " .
-                                       "(ar_title = '$title' AND " .
-                                       "ar_timestamp $op= '$ts')))" );
+                                       "(ar_title $op $title OR " .
+                                       "(ar_title = $title AND " .
+                                       "ar_timestamp $op= $ts)))" );
                }
 
                $this->addOption( 'LIMIT', $limit + 1 );
index 8ebe3ec..2ffe479 100644 (file)
@@ -61,14 +61,15 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                                        'original value returned by the previous query', '_badcontinue' );
                        }
 
-                       $prefix = $this->getDB()->strencode( $cont[0] );
-                       $title = $this->getDB()->strencode( $this->titleToKey( $cont[1] ) );
+                       $db = $this->getDB();
+                       $prefix = $db->addQuotes( $cont[0] );
+                       $title = $db->addQuotes( $this->titleToKey( $cont[1] ) );
                        $from = intval( $cont[2] );
                        $this->addWhere(
-                               "iwl_prefix > '$prefix' OR " .
-                               "(iwl_prefix = '$prefix' AND " .
-                               "(iwl_title > '$title' OR " .
-                               "(iwl_title = '$title' AND " .
+                               "iwl_prefix > $prefix OR " .
+                               "(iwl_prefix = $prefix AND " .
+                               "(iwl_title > $title OR " .
+                               "(iwl_title = $title AND " .
                                "iwl_from >= $from)))"
                        );
                }
index 4233560..efc2e81 100644 (file)
@@ -61,14 +61,15 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                                        'original value returned by the previous query', '_badcontinue' );
                        }
 
-                       $prefix = $this->getDB()->strencode( $cont[0] );
-                       $title = $this->getDB()->strencode( $this->titleToKey( $cont[1] ) );
+                       $db = $this->getDB();
+                       $prefix = $db->addQuotes( $cont[0] );
+                       $title = $db->addQuotes( $this->titleToKey( $cont[1] ) );
                        $from = intval( $cont[2] );
                        $this->addWhere(
-                               "ll_lang > '$prefix' OR " .
-                               "(ll_lang = '$prefix' AND " .
-                               "(ll_title > '$title' OR " .
-                               "(ll_title = '$title' AND " .
+                               "ll_lang > $prefix OR " .
+                               "(ll_lang = $prefix AND " .
+                               "(ll_title > $title OR " .
+                               "(ll_title = $title AND " .
                                "ll_from >= $from)))"
                        );
                }
index 2d2d9ff..931af08 100644 (file)
@@ -144,7 +144,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                /* Build our basic query. Namely, something along the lines of:
                 * SELECT * FROM recentchanges WHERE rc_timestamp > $start
                 *              AND rc_timestamp < $end AND rc_namespace = $namespace
-                *              AND rc_deleted = '0'
+                *              AND rc_deleted = 0
                 */
                $this->addTables( 'recentchanges' );
                $index = array( 'recentchanges' => 'rc_timestamp' ); // May change
index bdb129b..4ac7a44 100644 (file)
@@ -224,6 +224,13 @@ class ApiQueryRevisions extends ApiQueryBase {
                        }
                }
 
+               // add user name, if needed
+               if ( $this->fld_user ) {
+                       $this->addTables( 'user' );
+                       $this->addJoinConds( array( 'user' => Revision::userJoinCond() ) );
+                       $this->addFields( Revision::selectUserFields() );
+               }
+
                // Bug 24166 - API error when using rvprop=tags
                $this->addTables( 'revision' );
 
@@ -290,7 +297,7 @@ class ApiQueryRevisions extends ApiQueryBase {
                        $this->addWhereFld( 'rev_id', array_keys( $revs ) );
 
                        if ( !is_null( $params['continue'] ) ) {
-                               $this->addWhere( "rev_id >= '" . intval( $params['continue'] ) . "'" );
+                               $this->addWhere( 'rev_id >= ' . intval( $params['continue'] ) );
                        }
                        $this->addOption( 'ORDER BY', 'rev_id' );
 
@@ -322,9 +329,9 @@ class ApiQueryRevisions extends ApiQueryBase {
                                $pageid = intval( $cont[0] );
                                $revid = intval( $cont[1] );
                                $this->addWhere(
-                                       "rev_page > '$pageid' OR " .
-                                       "(rev_page = '$pageid' AND " .
-                                       "rev_id >= '$revid')"
+                                       "rev_page > $pageid OR " .
+                                       "(rev_page = $pageid AND " .
+                                       "rev_id >= $revid)"
                                );
                        }
                        $this->addOption( 'ORDER BY', array(
index 1654382..097d3e1 100644 (file)
@@ -152,13 +152,14 @@ class ApiQueryContributions extends ApiQueryBase {
                                $this->dieUsage( 'Invalid continue param. You should pass the original ' .
                                        'value returned by the previous query', '_badcontinue' );
                        }
-                       $encUser = $this->getDB()->strencode( $continue[0] );
-                       $encTS = wfTimestamp( TS_MW, $continue[1] );
+                       $db = $this->getDB();
+                       $encUser = $db->addQuotes( $continue[0] );
+                       $encTS = $db->addQuotes( $db->timestamp( $continue[1] ) );
                        $op = ( $this->params['dir'] == 'older' ? '<' : '>' );
                        $this->addWhere(
-                               "rev_user_text $op '$encUser' OR " .
-                               "(rev_user_text = '$encUser' AND " .
-                               "rev_timestamp $op= '$encTS')"
+                               "rev_user_text $op $encUser OR " .
+                               "(rev_user_text = $encUser AND " .
+                               "rev_timestamp $op= $encTS)"
                        );
                }
 
index a07ee7f..83872a5 100644 (file)
@@ -107,7 +107,7 @@ class ApiQueryUsers extends ApiQueryBase {
 
                if ( count( $goodNames ) ) {
                        $this->addTables( 'user' );
-                       $this->addFields( '*' );
+                       $this->addFields( User::selectFields() );
                        $this->addWhereFld( 'user_name', $goodNames );
 
                        if ( isset( $this->prop['groups'] ) || isset( $this->prop['rights'] ) ) {
index ce4ce50..5e96dd5 100644 (file)
@@ -76,12 +76,12 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
                                        "original value returned by the previous query", "_badcontinue" );
                        }
                        $ns = intval( $cont[0] );
-                       $title = $this->getDB()->strencode( $this->titleToKey( $cont[1] ) );
+                       $title = $this->getDB()->addQuotes( $this->titleToKey( $cont[1] ) );
                        $op = $params['dir'] == 'ascending' ? '>' : '<';
                        $this->addWhere(
-                               "wl_namespace $op '$ns' OR " .
-                               "(wl_namespace = '$ns' AND " .
-                               "wl_title $op= '$title')"
+                               "wl_namespace $op $ns OR " .
+                               "(wl_namespace = $ns AND " .
+                               "wl_title $op= $title)"
                        );
                }
 
index 6a9ecd2..2a169bb 100644 (file)
@@ -111,6 +111,29 @@ class GenderCache {
                $this->doQuery( array_keys( $users ), $caller );
        }
 
+       /**
+        * Wrapper for doQuery that processes a title or string array.
+        *
+        * @since 1.20
+        * @param $titles List: array of Title objects or strings
+        * @param $caller String: the calling method
+        */
+       public function doTitlesArray( $titles, $caller = '' ) {
+               $users = array();
+               foreach ( $titles as $title ) {
+                       $titleObj = is_string( $title ) ? Title::newFromText( $title ) : $title;
+                       if ( !$titleObj ) {
+                               continue;
+                       }
+                       if ( !MWNamespace::hasGenderDistinction( $titleObj->getNamespace() ) ) {
+                               continue;
+                       }
+                       $users[] = $titleObj->getText();
+               }
+
+               $this->doQuery( $users, $caller );
+       }
+
        /**
         * Preloads genders for given list of users.
         * @param $users List|String: usernames
index 91de65f..24f32d6 100644 (file)
@@ -132,6 +132,7 @@ class MessageCache {
        function getParserOptions() {
                if ( !$this->mParserOptions ) {
                        $this->mParserOptions = new ParserOptions;
+                       $this->mParserOptions->setEditSection( false );
                }
                return $this->mParserOptions;
        }
index ed73522..211f74a 100644 (file)
@@ -27,6 +27,8 @@
  * to explicitly call MWDebug::init() to enabled them.
  *
  * @todo Profiler support
+ *
+ * @since 1.19
  */
 class MWDebug {
 
@@ -69,6 +71,8 @@ class MWDebug {
        /**
         * Enabled the debugger and load resource module.
         * This is called by Setup.php when $wgDebugToolbar is true.
+        *
+        * @since 1.19
         */
        public static function init() {
                self::$enabled = true;
@@ -78,6 +82,7 @@ class MWDebug {
         * Add ResourceLoader modules to the OutputPage object if debugging is
         * enabled.
         *
+        * @since 1.19
         * @param $out OutputPage
         */
        public static function addModules( OutputPage $out ) {
@@ -91,6 +96,7 @@ class MWDebug {
         *
         * @todo Add support for passing objects
         *
+        * @since 1.19
         * @param $str string
         */
        public static function log( $str ) {
@@ -107,6 +113,7 @@ class MWDebug {
 
        /**
         * Returns internal log array
+        * @since 1.19
         * @return array
         */
        public static function getLog() {
@@ -115,6 +122,7 @@ class MWDebug {
 
        /**
         * Clears internal log array and deprecation tracking
+        * @since 1.19
         */
        public static function clearLog() {
                self::$log = array();
@@ -124,6 +132,7 @@ class MWDebug {
        /**
         * Adds a warning entry to the log
         *
+        * @since 1.19
         * @param $msg
         * @param int $callerOffset
         * @return mixed
@@ -153,6 +162,7 @@ class MWDebug {
        /**
         * Adds a depreciation entry to the log, along with a backtrace
         *
+        * @since 1.19
         * @param $function
         * @param $version
         * @param $component
@@ -192,6 +202,7 @@ class MWDebug {
         * This is a method to pass messages from wfDebug to the pretty debugger.
         * Do NOT use this method, use MWDebug::log or wfDebug()
         *
+        * @since 1.19
         * @param $str string
         */
        public static function debugMsg( $str ) {
@@ -205,6 +216,7 @@ class MWDebug {
        /**
         * Begins profiling on a database query
         *
+        * @since 1.19
         * @param $sql string
         * @param $function string
         * @param $isMaster bool
@@ -230,6 +242,7 @@ class MWDebug {
        /**
         * Calculates how long a query took.
         *
+        * @since 1.19
         * @param $id int
         */
        public static function queryTime( $id ) {
@@ -264,6 +277,7 @@ class MWDebug {
        /**
         * Returns the HTML to add to the page for the toolbar
         *
+        * @since 1.19
         * @param $context IContextSource
         * @return string
         */
@@ -272,10 +286,61 @@ class MWDebug {
                        return '';
                }
 
-               global $wgVersion, $wgRequestTime;
                MWDebug::log( 'MWDebug output complete' );
+               $debugInfo = self::getDebugInfo( $context );
+
+               // Cannot use OutputPage::addJsConfigVars because those are already outputted
+               // by the time this method is called.
+               $html = Html::inlineScript(
+                       ResourceLoader::makeLoaderConditionalScript(
+                               ResourceLoader::makeConfigSetScript( array( 'debugInfo' => $debugInfo ) )
+                       )
+               );
+
+               return $html;
+       }
+
+       /**
+        * Append the debug info to given ApiResult
+        *
+        * @param $context IContextSource
+        * @param $result ApiResult
+        */
+       public static function appendDebugInfoToApiResult( IContextSource $context, ApiResult $result ) {
+               if ( !self::$enabled ) {
+                       return;
+               }
+
+               MWDebug::log( 'MWDebug output complete' );
+               $debugInfo = self::getDebugInfo( $context );
+
+               $result->setIndexedTagName( $debugInfo, 'debuginfo' );
+               $result->setIndexedTagName( $debugInfo['log'], 'line' );
+               foreach( $debugInfo['debugLog'] as $index => $debugLogText ) {
+                       $vals = array();
+                       ApiResult::setContent( $vals, $debugLogText );
+                       $debugInfo['debugLog'][$index] = $vals; //replace
+               }
+               $result->setIndexedTagName( $debugInfo['debugLog'], 'msg' );
+               $result->setIndexedTagName( $debugInfo['queries'], 'query' );
+               $result->setIndexedTagName( $debugInfo['includes'], 'queries' );
+               $result->addValue( array(), 'debuginfo', $debugInfo );
+       }
+
+       /**
+        * Returns the HTML to add to the page for the toolbar
+        *
+        * @param $context IContextSource
+        * @return array
+        */
+       public static function getDebugInfo( IContextSource $context ) {
+               if ( !self::$enabled ) {
+                       return array();
+               }
+
+               global $wgVersion, $wgRequestTime;
                $request = $context->getRequest();
-               $debugInfo = array(
+               return array(
                        'mwVersion' => $wgVersion,
                        'phpVersion' => PHP_VERSION,
                        'gitRevision' => GitInfo::headSHA1(),
@@ -295,15 +360,5 @@ class MWDebug {
                        'memoryPeak' => $context->getLanguage()->formatSize( memory_get_peak_usage() ),
                        'includes' => self::getFilesIncluded( $context ),
                );
-
-               // Cannot use OutputPage::addJsConfigVars because those are already outputted
-               // by the time this method is called.
-               $html = Html::inlineScript(
-                       ResourceLoader::makeLoaderConditionalScript(
-                               ResourceLoader::makeConfigSetScript( array( 'debugInfo' => $debugInfo ) )
-                       )
-               );
-
-               return $html;
        }
 }
index 7435ca9..9c8d85d 100644 (file)
  * @deprecated since 1.19
  */
 class FSRepo extends FileRepo {
+
+       /**
+        * @param $info array
+        * @throws MWException
+        */
        function __construct( array $info ) {
                if ( !isset( $info['backend'] ) ) {
                        // B/C settings...
index 6533dae..d4eef87 100644 (file)
@@ -60,7 +60,11 @@ class FileRepo {
        var $oldFileFactory = false;
        var $fileFactoryKey = false, $oldFileFactoryKey = false;
 
-       function __construct( array $info = null ) {
+       /**
+        * @param $info array|null
+        * @throws MWException
+        */
+       public function __construct( array $info = null ) {
                // Verify required settings presence
                if(
                        $info === null
@@ -114,11 +118,11 @@ class FileRepo {
                        : array();
                // Give defaults for the basic zones...
                foreach ( array( 'public', 'thumb', 'temp', 'deleted' ) as $zone ) {
-                       if ( !isset( $this->zones[$zone] ) ) {
-                               $this->zones[$zone] = array(
-                                       'container' => "{$this->name}-{$zone}",
-                                       'directory' => '' // container root
-                               );
+                       if ( !isset( $this->zones[$zone]['container'] ) ) {
+                               $this->zones[$zone]['container'] = "{$this->name}-{$zone}";
+                       }
+                       if ( !isset( $this->zones[$zone]['directory'] ) ) {
+                               $this->zones[$zone]['directory'] = '';
                        }
                }
        }
@@ -146,6 +150,7 @@ class FileRepo {
         * Check if a single zone or list of zones is defined for usage
         *
         * @param $doZones Array Only do a particular zones
+        * @throws MWException
         * @return Status
         */
        protected function initZones( $doZones = array() ) {
@@ -186,7 +191,7 @@ class FileRepo {
         * The suffix, if supplied, is considered to be unencoded, and will be
         * URL-encoded before being returned.
         *
-        * @param $suffix string
+        * @param $suffix string|bool
         * @return string
         */
        public function getVirtualUrl( $suffix = false ) {
@@ -204,6 +209,11 @@ class FileRepo {
         * @return String or false
         */
        public function getZoneUrl( $zone ) {
+               if ( isset( $this->zones[$zone]['url'] )
+                       && in_array( $zone, array( 'public', 'temp', 'thumb' ) ) )
+               {
+                       return $this->zones[$zone]['url']; // custom URL
+               }
                switch ( $zone ) {
                        case 'public':
                                return $this->url;
@@ -223,6 +233,7 @@ class FileRepo {
         * Use this function wisely.
         *
         * @param $url string
+        * @throws MWException
         * @return string
         */
        public function resolveVirtualUrl( $url ) {
@@ -433,6 +444,7 @@ class FileRepo {
         * SHA-1 content hash.
         *
         * STUB
+        * @param $hash
         * @return array
         */
        public function findBySha1( $hash ) {
@@ -442,10 +454,11 @@ class FileRepo {
        /**
         * Get the public root URL of the repository
         *
+        * @deprecated since 1.20
         * @return string
         */
        public function getRootUrl() {
-               return $this->url;
+               return $this->getZoneUrl( 'public' );
        }
 
        /**
@@ -684,6 +697,7 @@ class FileRepo {
         *     self::OVERWRITE_SAME    Overwrite the file if the destination exists and has the
         *                             same contents as the source
         *     self::SKIP_LOCKING      Skip any file locking when doing the store
+        * @throws MWException
         * @return FileRepoStatus
         */
        public function storeBatch( array $triplets, $flags = 0 ) {
@@ -762,7 +776,7 @@ class FileRepo {
         * Each file can be a (zone, rel) pair, virtual url, storage path.
         * It will try to delete each file, but ignores any errors that may occur.
         *
-        * @param $pairs array List of files to delete
+        * @param $files array List of files to delete
         * @param $flags Integer: bitwise combination of the following flags:
         *     self::SKIP_LOCKING      Skip any file locking when doing the deletions
         * @return FileRepoStatus
@@ -841,7 +855,7 @@ class FileRepo {
         * This function can be used to write to otherwise read-only foreign repos.
         * This is intended for copying generated thumbnails into the repo.
         *
-        * @param $src Array List of tuples (file system path, virtual URL or storage path)
+        * @param $pairs Array List of tuples (file system path, virtual URL or storage path)
         * @return FileRepoStatus
         */
        public function quickImportBatch( array $pairs ) {
@@ -852,14 +866,11 @@ class FileRepo {
                        $operations[] = array(
                                'op'        => 'store',
                                'src'       => $src,
-                               'dst'       => $this->resolveToStoragePath( $dst ),
-                               'overwrite' => true
+                               'dst'       => $this->resolveToStoragePath( $dst )
                        );
                        $this->backend->prepare( array( 'dir' => dirname( $dst ) ) );
                }
-               $status->merge( $this->backend->doOperations( $operations,
-                       array( 'force' => 1, 'nonLocking' => 1, 'allowStale' => 1, 'nonJournaled' => 1 )
-               ) );
+               $status->merge( $this->backend->doQuickOperations( $operations ) );
 
                return $status;
        }
@@ -869,7 +880,7 @@ class FileRepo {
         * This function can be used to write to otherwise read-only foreign repos.
         * This does no locking nor journaling and is intended for purging thumbnails.
         *
-        * @param $path Array List of virtual URLs or storage paths
+        * @param $paths Array List of virtual URLs or storage paths
         * @return FileRepoStatus
         */
        public function quickPurgeBatch( array $paths ) {
@@ -882,9 +893,7 @@ class FileRepo {
                                'ignoreMissingSource' => true
                        );
                }
-               $status->merge( $this->backend->doOperations( $operations,
-                       array( 'force' => 1, 'nonLocking' => 1, 'allowStale' => 1, 'nonJournaled' => 1 )
-               ) );
+               $status->merge( $this->backend->doQuickOperations( $operations ) );
 
                return $status;
        }
@@ -1013,6 +1022,7 @@ class FileRepo {
         * @param $triplets Array: (source, dest, archive) triplets as per publish()
         * @param $flags Integer: bitfield, may be FileRepo::DELETE_SOURCE to indicate
         *        that the source files should be deleted if possible
+        * @throws MWException
         * @return FileRepoStatus
         */
        public function publishBatch( array $triplets, $flags = 0 ) {
@@ -1188,6 +1198,7 @@ class FileRepo {
         *        is a two-element array containing the source file path relative to the
         *        public root in the first element, and the archive file path relative
         *        to the deleted zone root in the second element.
+        * @throws MWException
         * @return FileRepoStatus
         */
        public function deleteBatch( array $sourceDestPairs ) {
@@ -1257,6 +1268,7 @@ class FileRepo {
         * Get a relative path for a deletion archive key,
         * e.g. s/z/a/ for sza251lrxrc1jad41h5mgilp8nysje52.jpg
         *
+        * @param $key string
         * @return string
         */
        public function getDeletedHashPath( $key ) {
@@ -1460,6 +1472,7 @@ class FileRepo {
        /**
         * Create a new good result
         *
+        * @param $value null|string
         * @return FileRepoStatus
         */
        public function newGood( $value = null ) {
index 5fab3ab..77b9d04 100644 (file)
@@ -51,6 +51,9 @@ class ForeignAPIRepo extends FileRepo {
        protected $mQueryCache = array();
        protected $mFileExists = array();
 
+       /**
+        * @param $info array|null
+        */
        function __construct( $info ) {
                global $wgLocalFileRepo;
                parent::__construct( $info );
@@ -81,6 +84,8 @@ class ForeignAPIRepo extends FileRepo {
         * Per docs in FileRepo, this needs to return false if we don't support versioned
         * files. Well, we don't.
         *
+        * @param $title Title
+        * @param $time string|bool
         * @return File
         */
        function newFile( $title, $time = false ) {
@@ -90,6 +95,10 @@ class ForeignAPIRepo extends FileRepo {
                return parent::newFile( $title, $time );
        }
 
+       /**
+        * @param $files array
+        * @return array
+        */
        function fileExistsBatch( array $files ) {
                $results = array();
                foreach ( $files as $k => $f ) {
@@ -121,10 +130,18 @@ class ForeignAPIRepo extends FileRepo {
                return $results;
        }
 
+       /**
+        * @param $virtualUrl string
+        * @return bool
+        */
        function getFileProps( $virtualUrl ) {
                return false;
        }
 
+       /**
+        * @param $query array
+        * @return string
+        */
        function fetchImageQuery( $query ) {
                global $wgMemc;
 
@@ -160,6 +177,10 @@ class ForeignAPIRepo extends FileRepo {
                return FormatJson::decode( $this->mQueryCache[$url], true );
        }
 
+       /**
+        * @param $data array
+        * @return bool|array
+        */
        function getImageInfo( $data ) {
                if( $data && isset( $data['query']['pages'] ) ) {
                        foreach( $data['query']['pages'] as $info ) {
@@ -171,6 +192,10 @@ class ForeignAPIRepo extends FileRepo {
                return false;
        }
 
+       /**
+        * @param $hash string
+        * @return array
+        */
        function findBySha1( $hash ) {
                $results = $this->fetchImageQuery( array(
                                                                                'aisha1base36' => $hash,
@@ -189,6 +214,14 @@ class ForeignAPIRepo extends FileRepo {
                return $ret;
        }
 
+       /**
+        * @param $name string
+        * @param $width int
+        * @param $height int
+        * @param $result null
+        * @param $otherParams string
+        * @return bool
+        */
        function getThumbUrl( $name, $width = -1, $height = -1, &$result = null, $otherParams = '' ) {
                $data = $this->fetchImageQuery( array(
                        'titles' => 'File:' . $name,
@@ -217,10 +250,10 @@ class ForeignAPIRepo extends FileRepo {
         * @param $name String is a dbkey form of a title
         * @param $width
         * @param $height
-        * @param String $param Other rendering parameters (page number, etc) from handler's makeParamString.
+        * @param String $params Other rendering parameters (page number, etc) from handler's makeParamString.
         * @return bool|string
         */
-       function getThumbUrlFromCache( $name, $width, $height, $params="" ) {
+       function getThumbUrlFromCache( $name, $width, $height, $params = "" ) {
                global $wgMemc;
                // We can't check the local cache using FileRepo functions because
                // we override fileExistsBatch(). We have to use the FileBackend directly.
@@ -292,7 +325,7 @@ class ForeignAPIRepo extends FileRepo {
                $op = array( 'op' => 'create', 'dst' => $localFilename, 'content' => $thumb );
                if( !$backend->doOperation( $op )->isOK() ) {
                        wfRestoreWarnings();
-                       wfDebug( __METHOD__ . " could not write to thumb path\n" );
+                       wfDebug( __METHOD__ . " could not write to thumb path '$localFilename'\n" );
                        return $foreignUrl;
                }
                $knownThumbUrls[$sizekey] = $localUrl;
@@ -303,6 +336,7 @@ class ForeignAPIRepo extends FileRepo {
 
        /**
         * @see FileRepo::getZoneUrl()
+        * @param $zone String
         * @return String
         */
        function getZoneUrl( $zone ) {
@@ -318,6 +352,7 @@ class ForeignAPIRepo extends FileRepo {
 
        /**
         * Get the local directory corresponding to one of the basic zones
+        * @param $zone string
         * @return bool|null|string
         */
        function getZonePath( $zone ) {
@@ -347,6 +382,9 @@ class ForeignAPIRepo extends FileRepo {
        /**
         * Like a Http:get request, but with custom User-Agent.
         * @see Http:get
+        * @param $url string
+        * @param $timeout string
+        * @param $options array
         * @return bool|String
         */
        public static function httpGet( $url, $timeout = 'default', $options = array() ) {
@@ -371,10 +409,17 @@ class ForeignAPIRepo extends FileRepo {
                }
        }
 
+       /**
+        * @param $callback Array|string
+        * @throws MWException
+        */
        function enumFiles( $callback ) {
                throw new MWException( 'enumFiles is not supported by ' . get_class( $this ) );
        }
 
+       /**
+        * @throws MWException
+        */
        protected function assertWritableRepo() {
                throw new MWException( get_class( $this ) . ': write operations are not supported.' );
        }
index 6a1cfaf..4b206c3 100644 (file)
@@ -36,6 +36,9 @@ class ForeignDBRepo extends LocalRepo {
        var $fileFactory = array( 'ForeignDBFile', 'newFromTitle' );
        var $fileFromRowFactory = array( 'ForeignDBFile', 'newFromRow' );
 
+       /**
+        * @param $info array|null
+        */
        function __construct( $info ) {
                parent::__construct( $info );
                $this->dbType = $info['dbType'];
@@ -48,6 +51,9 @@ class ForeignDBRepo extends LocalRepo {
                $this->hasSharedCache = $info['hasSharedCache'];
        }
 
+       /**
+        * @return DatabaseBase
+        */
        function getMasterDB() {
                if ( !isset( $this->dbConn ) ) {
                        $this->dbConn = DatabaseBase::factory( $this->dbType,
@@ -64,10 +70,16 @@ class ForeignDBRepo extends LocalRepo {
                return $this->dbConn;
        }
 
+       /**
+        * @return DatabaseBase
+        */
        function getSlaveDB() {
                return $this->getMasterDB();
        }
 
+       /**
+        * @return bool
+        */
        function hasSharedCache() {
                return $this->hasSharedCache;
        }
index 2132ba6..bd76fce 100644 (file)
@@ -31,6 +31,9 @@ class ForeignDBViaLBRepo extends LocalRepo {
        var $fileFactory = array( 'ForeignDBFile', 'newFromTitle' );
        var $fileFromRowFactory = array( 'ForeignDBFile', 'newFromRow' );
 
+       /**
+        * @param $info array|null
+        */
        function __construct( $info ) {
                parent::__construct( $info );
                $this->wiki = $info['wiki'];
@@ -38,10 +41,16 @@ class ForeignDBViaLBRepo extends LocalRepo {
                $this->hasSharedCache = $info['hasSharedCache'];
        }
 
+       /**
+        * @return DatabaseBase
+        */
        function getMasterDB() {
                return wfGetDB( DB_MASTER, array(), $this->wiki );
        }
 
+       /**
+        * @return DatabaseBase
+        */
        function getSlaveDB() {
                return wfGetDB( DB_SLAVE, array(), $this->wiki );
        }
index 3f39f60..dda51ce 100644 (file)
  * @ingroup FileRepo
  */
 class NullRepo extends FileRepo {
+
+       /**
+        * @param $info array|null
+        */
        function __construct( $info ) {}
 
        protected function assertWritableRepo() {
index 0def2d8..709655a 100644 (file)
@@ -165,6 +165,10 @@ class RepoGroup {
                return $image;
        }
 
+       /**
+        * @param $inputItems array
+        * @return array
+        */
        function findFiles( $inputItems ) {
                if ( !$this->reposInitialised ) {
                        $this->initialiseRepos();
@@ -196,6 +200,7 @@ class RepoGroup {
 
        /**
         * Interface for FileRepo::checkRedirect()
+        * @param $title Title
         * @return bool
         */
        function checkRedirect( Title $title ) {
@@ -259,6 +264,7 @@ class RepoGroup {
 
        /**
         * Get the repo instance with a given key.
+        * @param $index string|int
         * @return bool|LocalRepo
         */
        function getRepo( $index ) {
@@ -273,8 +279,10 @@ class RepoGroup {
                        return false;
                }
        }
+
        /**
         * Get the repo instance by its name
+        * @param $name string
         * @return bool
         */
        function getRepoByName( $name ) {
@@ -282,8 +290,9 @@ class RepoGroup {
                        $this->initialiseRepos();
                }
                foreach ( $this->foreignRepos as $repo ) {
-                       if ( $repo->name == $name)
+                       if ( $repo->name == $name ) {
                                return $repo;
+                       }
                }
                return false;
        }
@@ -351,6 +360,7 @@ class RepoGroup {
        /**
         * Split a virtual URL into repo, zone and rel parts
         * @param $url string
+        * @throws MWException
         * @return array containing repo, zone and rel
         */
        function splitVirtualUrl( $url ) {
@@ -365,6 +375,10 @@ class RepoGroup {
                return $bits;
        }
 
+       /**
+        * @param $fileName string
+        * @return array
+        */
        function getFileProps( $fileName ) {
                if ( FileRepo::isVirtualUrl( $fileName ) ) {
                        list( $repoName, /* $zone */, /* $rel */ ) = $this->splitVirtualUrl( $fileName );
index ec21c8f..e07c99d 100644 (file)
@@ -32,7 +32,8 @@ class FSFile {
        /**
         * Sets up the file object
         *
-        * @param String $path Path to temporary file on local disk
+        * @param $path string Path to temporary file on local disk
+        * @throws MWException
         */
        public function __construct( $path ) {
                if ( FileBackend::isStoragePath( $path ) ) {
@@ -169,6 +170,7 @@ class FSFile {
        /**
         * Exract image size information
         *
+        * @param $gis array
         * @return Array
         */
        protected function extractImageSizeInfo( array $gis ) {
index e105730..8157916 100644 (file)
@@ -78,6 +78,8 @@ class FSFileBackend extends FileBackendStore {
 
        /**
         * @see FileBackendStore::resolveContainerPath()
+        * @param $container string
+        * @param $relStoragePath string
         * @return null|string
         */
        protected function resolveContainerPath( $container, $relStoragePath ) {
@@ -745,6 +747,9 @@ class FSFileBackend extends FileBackendStore {
                return array_pop( $this->hadWarningErrors ); // pop from stack
        }
 
+       /**
+        * @return bool
+        */
        private function handleWarning() {
                $this->hadWarningErrors[count( $this->hadWarningErrors ) - 1] = true;
                return true; // suppress from PHP handler
@@ -758,6 +763,13 @@ class FSFileOpHandle extends FileBackendStoreOpHandle {
        public $cmd; // string; shell command
        public $chmodPath; // string; file to chmod
 
+       /**
+        * @param $backend
+        * @param $params array
+        * @param $call
+        * @param $cmd
+        * @param $chmodPath null
+        */
        public function __construct( $backend, array $params, $call, $cmd, $chmodPath = null ) {
                $this->backend = $backend;
                $this->params = $params;
@@ -784,6 +796,7 @@ abstract class FSFileBackendList implements Iterator {
 
        /**
         * @param $dir string file system directory
+        * @param $params array
         */
        public function __construct( $dir, array $params ) {
                $dir = realpath( $dir ); // normalize
index 24c6849..42ddcbf 100644 (file)
@@ -88,6 +88,7 @@ abstract class FileBackend {
         *     'concurrency' : How many file operations can be done in parallel.
         *
         * @param $config Array
+        * @throws MWException
         */
        public function __construct( array $config ) {
                $this->name = $config['name'];
@@ -286,8 +287,7 @@ abstract class FileBackend {
         * @return Status
         */
        final public function create( array $params, array $opts = array() ) {
-               $params['op'] = 'create';
-               return $this->doOperation( $params, $opts );
+               return $this->doOperation( array( 'op' => 'create' ) + $params, $opts );
        }
 
        /**
@@ -301,8 +301,7 @@ abstract class FileBackend {
         * @return Status
         */
        final public function store( array $params, array $opts = array() ) {
-               $params['op'] = 'store';
-               return $this->doOperation( $params, $opts );
+               return $this->doOperation( array( 'op' => 'store' ) + $params, $opts );
        }
 
        /**
@@ -316,8 +315,7 @@ abstract class FileBackend {
         * @return Status
         */
        final public function copy( array $params, array $opts = array() ) {
-               $params['op'] = 'copy';
-               return $this->doOperation( $params, $opts );
+               return $this->doOperation( array( 'op' => 'copy' ) + $params, $opts );
        }
 
        /**
@@ -331,8 +329,7 @@ abstract class FileBackend {
         * @return Status
         */
        final public function move( array $params, array $opts = array() ) {
-               $params['op'] = 'move';
-               return $this->doOperation( $params, $opts );
+               return $this->doOperation( array( 'op' => 'move' ) + $params, $opts );
        }
 
        /**
@@ -346,10 +343,80 @@ abstract class FileBackend {
         * @return Status
         */
        final public function delete( array $params, array $opts = array() ) {
-               $params['op'] = 'delete';
-               return $this->doOperation( $params, $opts );
+               return $this->doOperation( array( 'op' => 'delete' ) + $params, $opts );
        }
 
+       /**
+        * Perform a set of independent file operations on some files.
+        *
+        * This does no locking, nor journaling, and possibly no stat calls.
+        * Any destination files that already exist will be overwritten.
+        * This should *only* be used on non-original files, like cache files.
+        *
+        * Supported operations and their parameters:
+        * a) Create a new file in storage with the contents of a string
+        *     array(
+        *         'op'                  => 'create',
+        *         'dst'                 => <storage path>,
+        *         'content'             => <string of new file contents>
+        *     )
+        * b) Copy a file system file into storage
+        *     array(
+        *         'op'                  => 'store',
+        *         'src'                 => <file system path>,
+        *         'dst'                 => <storage path>
+        *     )
+        * c) Copy a file within storage
+        *     array(
+        *         'op'                  => 'copy',
+        *         'src'                 => <storage path>,
+        *         'dst'                 => <storage path>
+        *     )
+        * d) Move a file within storage
+        *     array(
+        *         'op'                  => 'move',
+        *         'src'                 => <storage path>,
+        *         'dst'                 => <storage path>
+        *     )
+        * e) Delete a file within storage
+        *     array(
+        *         'op'                  => 'delete',
+        *         'src'                 => <storage path>,
+        *         'ignoreMissingSource' => <boolean>
+        *     )
+        * f) Do nothing (no-op)
+        *     array(
+        *         'op'                  => 'null',
+        *     )
+        *
+        * Boolean flags for operations (operation-specific):
+        * 'ignoreMissingSource' : The operation will simply succeed and do
+        *                         nothing if the source file does not exist.
+        *
+        * Return value:
+        * This returns a Status, which contains all warnings and fatals that occured
+        * during the operation. The 'failCount', 'successCount', and 'success' members
+        * will reflect each operation attempted for the given files. The status will be
+        * considered "OK" as long as no fatal errors occured.
+        *
+        * @param $ops Array Set of operations to execute
+        * @return Status
+        */
+       final public function doQuickOperations( array $ops ) {
+               if ( $this->isReadOnly() ) {
+                       return Status::newFatal( 'backend-fail-readonly', $this->name, $this->readOnly );
+               }
+               foreach ( $ops as &$op ) {
+                       $op['overwrite'] = true; // avoids RTTs in key/value stores
+               }
+               return $this->doQuickOperationsInternal( $ops );
+       }
+
+       /**
+        * @see FileBackend::doQuickOperations()
+        */
+       abstract protected function doQuickOperationsInternal( array $ops );
+
        /**
         * Concatenate a list of storage files into a single file system file.
         * The target path should refer to a file that is already locked or
@@ -597,6 +664,7 @@ abstract class FileBackend {
         * $params include:
         *     dir : storage directory
         *
+        * @param $params array
         * @return bool|null Returns null on failure
         * @since 1.20
         */
@@ -616,6 +684,7 @@ abstract class FileBackend {
         *     dir     : storage directory
         *     topOnly : only return direct child dirs of the directory
         *
+        * @param $params array
         * @return Traversable|Array|null Returns null on failure
         * @since 1.20
         */
@@ -630,6 +699,7 @@ abstract class FileBackend {
         * $params include:
         *     dir : storage directory
         *
+        * @param $params array
         * @return Traversable|Array|null Returns null on failure
         * @since 1.20
         */
@@ -651,6 +721,7 @@ abstract class FileBackend {
         *     dir     : storage directory
         *     topOnly : only return direct child files of the directory (@since 1.20)
         *
+        * @param $params array
         * @return Traversable|Array|null Returns null on failure
         */
        abstract public function getFileList( array $params );
@@ -664,6 +735,7 @@ abstract class FileBackend {
         * $params include:
         *     dir : storage directory
         *
+        * @param $params array
         * @return Traversable|Array|null Returns null on failure
         * @since 1.20
         */
@@ -722,6 +794,24 @@ abstract class FileBackend {
                return ScopedLock::factory( $this->lockManager, $paths, $type, $status );
        }
 
+       /**
+        * Get an array of scoped locks needed for a batch of file operations.
+        *
+        * Normally, FileBackend::doOperations() handles locking, unless
+        * the 'nonLocking' param is passed in. This function is useful if you
+        * want the files to be locked for a broader scope than just when the
+        * files are changing. For example, if you need to update DB metadata,
+        * you may want to keep the files locked until finished.
+        *
+        * @see FileBackend::doOperations()
+        *
+        * @param $ops Array List of file operations to FileBackend::doOperations()
+        * @param $status Status Status to update on lock/unlock
+        * @return Array List of ScopedFileLocks or null values
+        * @since 1.20
+        */
+       abstract public function getScopedLocksForOps( array $ops, Status $status );
+
        /**
         * Get the root storage path of this backend.
         * All container paths are "subdirectories" of this path.
@@ -733,6 +823,15 @@ abstract class FileBackend {
                return "mwstore://{$this->name}";
        }
 
+       /**
+        * Get the file journal object for this backend
+        *
+        * @return FileJournal
+        */
+       final public function getJournal() {
+               return $this->fileJournal;
+       }
+
        /**
         * Check if a given path is a "mwstore://" path.
         * This does not do any further validation or any existence checks.
index 69c227d..8bbc96d 100644 (file)
@@ -156,6 +156,21 @@ class FileBackendGroup {
                return $this->backends[$name]['instance'];
        }
 
+       /**
+        * Get the config array for a backend object with a given name
+        *
+        * @param $name string
+        * @return Array
+        * @throws MWException
+        */
+       public function config( $name ) {
+               if ( !isset( $this->backends[$name] ) ) {
+                       throw new MWException( "No backend defined with the name `$name`." );
+               }
+               $class = $this->backends[$name]['class'];
+               return array( 'class' => $class ) + $this->backends[$name]['config'];
+       }
+
        /**
         * Get an appropriate backend object from a storage path
         *
index 4f9f0d9..efc6053 100644 (file)
@@ -57,6 +57,9 @@ class FileBackendMultiWrite extends FileBackend {
         *                     FileBackendStore class, but with these additional settings:
         *                         'class'         : The name of the backend class
         *                         'isMultiMaster' : This must be set for one backend.
+        *                         'template:      : If given a backend name, this will use
+        *                                           the config of that backend as a template.
+        *                                           Values specified here take precedence.
         *     'syncChecks'  : Integer bitfield of internal backend sync checks to perform.
         *                     Possible bits include self::CHECK_SIZE and self::CHECK_TIME.
         *                     The checks are done before allowing any file operations.
@@ -68,6 +71,11 @@ class FileBackendMultiWrite extends FileBackend {
                // Construct backends here rather than via registration
                // to keep these backends hidden from outside the proxy.
                foreach ( $config['backends'] as $index => $config ) {
+                       if ( isset( $config['template'] ) ) {
+                               // Config is just a modified version of a registered backend's.
+                               // This should only be used when that config is used only be this backend.
+                               $config = $config + FileBackendGroup::singleton()->config( $config['template'] );
+                       }
                        $name = $config['name'];
                        if ( isset( $namesUsed[$name] ) ) { // don't break FileOp predicates
                                throw new MWException( "Two or more backends defined with the name $name." );
@@ -252,7 +260,7 @@ class FileBackendMultiWrite extends FileBackend {
        /**
         * Same as substOpBatchPaths() but for a single operation
         *
-        * @param $op File operation array
+        * @param $ops array File operation array
         * @param $backend FileBackendStore
         * @return Array
         */
@@ -290,6 +298,24 @@ class FileBackendMultiWrite extends FileBackend {
                );
        }
 
+       /**
+        * @see FileBackend::doQuickOperationsInternal()
+        * @return Status
+        */
+       public function doQuickOperationsInternal( array $ops ) {
+               // Do the operations on the master backend; setting Status fields...
+               $realOps = $this->substOpBatchPaths( $ops, $this->backends[$this->masterIndex] );
+               $status = $this->backends[$this->masterIndex]->doQuickOperations( $realOps );
+               // Propagate the operations to the clone backends...
+               foreach ( $this->backends as $index => $backend ) {
+                       if ( $index !== $this->masterIndex ) { // not done already
+                               $realOps = $this->substOpBatchPaths( $ops, $backend );
+                               $status->merge( $backend->doQuickOperations( $realOps ) );
+                       }
+               }
+               return $status;
+       }
+
        /**
         * @see FileBackend::doPrepare()
         * @return Status
@@ -305,6 +331,7 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::doSecure()
+        * @param $params array
         * @return Status
         */
        protected function doSecure( array $params ) {
@@ -318,6 +345,7 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::doClean()
+        * @param $params array
         * @return Status
         */
        protected function doClean( array $params ) {
@@ -331,6 +359,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::concatenate()
+        * @param $params array
+        * @return Status
         */
        public function concatenate( array $params ) {
                // We are writing to an FS file, so we don't need to do this per-backend
@@ -340,6 +370,7 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::fileExists()
+        * @param $params array
         */
        public function fileExists( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -348,6 +379,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getFileTimestamp()
+        * @param $params array
+        * @return bool|string
         */
        public function getFileTimestamp( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -356,6 +389,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getFileSize()
+        * @param $params array
+        * @return bool|int
         */
        public function getFileSize( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -364,6 +399,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getFileStat()
+        * @param $params array
+        * @return Array|bool|null
         */
        public function getFileStat( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -372,6 +409,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getFileContents()
+        * @param $params array
+        * @return bool|string
         */
        public function getFileContents( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -380,6 +419,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getFileSha1Base36()
+        * @param $params array
+        * @return bool|string
         */
        public function getFileSha1Base36( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -388,6 +429,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getFileProps()
+        * @param $params array
+        * @return Array
         */
        public function getFileProps( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -396,6 +439,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::streamFile()
+        * @param $params array
+        * @return \Status
         */
        public function streamFile( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -404,6 +449,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getLocalReference()
+        * @param $params array
+        * @return FSFile|null
         */
        public function getLocalReference( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -412,6 +459,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getLocalCopy()
+        * @param $params array
+        * @return null|TempFSFile
         */
        public function getLocalCopy( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -420,6 +469,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::directoryExists()
+        * @param $params array
+        * @return bool|null
         */
        public function directoryExists( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -428,6 +479,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getSubdirectoryList()
+        * @param $params array
+        * @return Array|null|Traversable
         */
        public function getDirectoryList( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -436,6 +489,8 @@ class FileBackendMultiWrite extends FileBackend {
 
        /**
         * @see FileBackend::getFileList()
+        * @param $params array
+        * @return Array|null|\Traversable
         */
        public function getFileList( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
@@ -451,4 +506,20 @@ class FileBackendMultiWrite extends FileBackend {
                        $backend->clearCache( $realPaths );
                }
        }
+
+       /**
+        * @see FileBackend::getScopedLocksForOps()
+        */
+       public function getScopedLocksForOps( array $ops, Status $status ) {
+               $fileOps = $this->backends[$this->masterIndex]->getOperationsInternal( $ops );
+               // Get the paths to lock from the master backend
+               $paths = $this->backends[$this->masterIndex]->getPathsToLockForOpsInternal( $fileOps );
+               // Get the paths under the proxy backend's name
+               $paths['sh'] = $this->unsubstPaths( $paths['sh'] );
+               $paths['ex'] = $this->unsubstPaths( $paths['ex'] );
+               return array(
+                       $this->getScopedFileLocks( $paths['sh'], LockManager::LOCK_UW, $status ),
+                       $this->getScopedFileLocks( $paths['ex'], LockManager::LOCK_EX, $status )
+               );
+       }
 }
index 1a7bd06..f02724f 100644 (file)
@@ -137,7 +137,8 @@ abstract class FileBackendStore extends FileBackend {
                wfProfileIn( __METHOD__ );
                wfProfileIn( __METHOD__ . '-' . $this->name );
                if ( filesize( $params['src'] ) > $this->maxFileSizeInternal() ) {
-                       $status = Status::newFatal( 'backend-fail-store', $params['dst'] );
+                       $status = Status::newFatal( 'backend-fail-maxsize',
+                               $params['dst'], $this->maxFileSizeInternal() );
                } else {
                        $status = $this->doStoreInternal( $params );
                        $this->clearCache( array( $params['dst'] ) );
@@ -257,6 +258,17 @@ abstract class FileBackendStore extends FileBackend {
                return $status;
        }
 
+       /**
+        * No-op file operation that does nothing.
+        * Do not call this function from places outside FileBackend and FileOp.
+        *
+        * @param $params Array
+        * @return Status
+        */
+       final public function nullInternal( array $params ) {
+               return Status::newGood();
+       }
+
        /**
         * @see FileBackend::concatenate()
         * @return Status
@@ -552,6 +564,8 @@ abstract class FileBackendStore extends FileBackend {
                        $this->trimCache(); // limit memory
                        $this->cache[$path]['stat'] = $stat;
                        $this->setFileCache( $path, $stat ); // update persistent cache
+               } else {
+                       wfDebug( __METHOD__ . ": File $path does not exist.\n" );
                }
                wfProfileOut( __METHOD__ . '-' . $this->name );
                wfProfileOut( __METHOD__ );
@@ -818,22 +832,6 @@ abstract class FileBackendStore extends FileBackend {
         */
        abstract public function getFileListInternal( $container, $dir, array $params );
 
-       /**
-        * Get the list of supported operations and their corresponding FileOp classes.
-        *
-        * @return Array
-        */
-       protected function supportedOperations() {
-               return array(
-                       'store'       => 'StoreFileOp',
-                       'copy'        => 'CopyFileOp',
-                       'move'        => 'MoveFileOp',
-                       'delete'      => 'DeleteFileOp',
-                       'create'      => 'CreateFileOp',
-                       'null'        => 'NullFileOp'
-               );
-       }
-
        /**
         * Return a list of FileOp objects from a list of operations.
         * Do not call this function from places outside FileBackend.
@@ -846,7 +844,14 @@ abstract class FileBackendStore extends FileBackend {
         * @throws MWException
         */
        final public function getOperationsInternal( array $ops ) {
-               $supportedOps = $this->supportedOperations();
+               $supportedOps = array(
+                       'store'       => 'StoreFileOp',
+                       'copy'        => 'CopyFileOp',
+                       'move'        => 'MoveFileOp',
+                       'delete'      => 'DeleteFileOp',
+                       'create'      => 'CreateFileOp',
+                       'null'        => 'NullFileOp'
+               );
 
                $performOps = array(); // array of FileOp objects
                // Build up ordered array of FileOps...
@@ -889,6 +894,18 @@ abstract class FileBackendStore extends FileBackend {
                return $paths;
        }
 
+       /**
+        * @see FileBackend::getScopedLocksForOps()
+        * @return Array
+        */
+       public function getScopedLocksForOps( array $ops, Status $status ) {
+               $paths = $this->getPathsToLockForOpsInternal( $this->getOperationsInternal( $ops ) );
+               return array(
+                       $this->getScopedFileLocks( $paths['sh'], LockManager::LOCK_UW, $status ),
+                       $this->getScopedFileLocks( $paths['ex'], LockManager::LOCK_EX, $status )
+               );
+       }
+
        /**
         * @see FileBackend::doOperationsInternal()
         * @return Status
@@ -934,6 +951,66 @@ abstract class FileBackendStore extends FileBackend {
                return $status;
        }
 
+       /**
+        * @see FileBackend::doQuickOperationsInternal()
+        * @return Status
+        * @throws MWException
+        */
+       final protected function doQuickOperationsInternal( array $ops ) {
+               wfProfileIn( __METHOD__ );
+               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $status = Status::newGood();
+
+               $supportedOps = array( 'create', 'store', 'copy', 'move', 'delete', 'null' );
+               $async = ( $this->parallelize === 'implicit' );
+               $maxConcurrency = $this->concurrency; // throttle
+
+               $statuses = array(); // array of (index => Status)
+               $fileOpHandles = array(); // list of (index => handle) arrays
+               $curFileOpHandles = array(); // current handle batch
+               // Perform the sync-only ops and build up op handles for the async ops...
+               foreach ( $ops as $index => $params ) {
+                       if ( !in_array( $params['op'], $supportedOps ) ) {
+                               wfProfileOut( __METHOD__ . '-' . $this->name );
+                               wfProfileOut( __METHOD__ );
+                               throw new MWException( "Operation '{$params['op']}' is not supported." );
+                       }
+                       $method = $params['op'] . 'Internal'; // e.g. "storeInternal"
+                       $subStatus = $this->$method( array( 'async' => $async ) + $params );
+                       if ( $subStatus->value instanceof FileBackendStoreOpHandle ) { // async
+                               if ( count( $curFileOpHandles ) >= $maxConcurrency ) {
+                                       $fileOpHandles[] = $curFileOpHandles; // push this batch
+                                       $curFileOpHandles = array();
+                               }
+                               $curFileOpHandles[$index] = $subStatus->value; // keep index
+                       } else { // error or completed
+                               $statuses[$index] = $subStatus; // keep index
+                       }
+               }
+               if ( count( $curFileOpHandles ) ) {
+                       $fileOpHandles[] = $curFileOpHandles; // last batch
+               }
+               // Do all the async ops that can be done concurrently...
+               foreach ( $fileOpHandles as $fileHandleBatch ) {
+                       $statuses = $statuses + $this->executeOpHandlesInternal( $fileHandleBatch );
+               }
+               // Marshall and merge all the responses...
+               foreach ( $statuses as $index => $subStatus ) {
+                       $status->merge( $subStatus );
+                       if ( $subStatus->isOK() ) {
+                               $status->success[$index] = true;
+                               ++$status->successCount;
+                       } else {
+                               $status->success[$index] = false;
+                               ++$status->failCount;
+                       }
+               }
+
+               wfProfileOut( __METHOD__ . '-' . $this->name );
+               wfProfileOut( __METHOD__ );
+               return $status;
+       }
+
        /**
         * Execute a list of FileBackendStoreOpHandle handles in parallel.
         * The resulting Status object fields will correspond
@@ -941,6 +1018,7 @@ abstract class FileBackendStore extends FileBackend {
         *
         * @param $handles Array List of FileBackendStoreOpHandle objects
         * @return Array Map of Status objects
+        * @throws MWException
         */
        final public function executeOpHandlesInternal( array $fileOpHandles ) {
                wfProfileIn( __METHOD__ );
@@ -953,6 +1031,9 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
                $res = $this->doExecuteOpHandlesInternal( $fileOpHandles );
+               foreach ( $fileOpHandles as $fileOpHandle ) {
+                       $fileOpHandle->closeResources();
+               }
                wfProfileOut( __METHOD__ . '-' . $this->name );
                wfProfileOut( __METHOD__ );
                return $res;
@@ -1136,7 +1217,7 @@ abstract class FileBackendStore extends FileBackend {
         * Any empty suffix means the container is not sharded.
         *
         * @param $container string Container name
-        * @param $relStoragePath string Storage path relative to the container
+        * @param $relPath string Storage path relative to the container
         * @return string|null Returns null if shard could not be determined
         */
        final protected function getContainerShard( $container, $relPath ) {
@@ -1263,7 +1344,7 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * Get the cache key for a container
         *
-        * @param $container Resolved container name
+        * @param $container string Resolved container name
         * @return string
         */
        private function containerCacheKey( $container ) {
@@ -1273,9 +1354,8 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * Set the cached info for a container
         *
-        * @param $container Resolved container name
+        * @param $container string Resolved container name
         * @param $val mixed Information to cache
-        * @return void
         */
        final protected function setContainerCache( $container, $val ) {
                $this->memCache->set( $this->containerCacheKey( $container ), $val, 14*86400 );
@@ -1284,8 +1364,7 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * Delete the cached info for a container
         *
-        * @param $container Resolved container name
-        * @return void
+        * @param $container string Resolved container name
         */
        final protected function deleteContainerCache( $container ) {
                if ( !$this->memCache->delete( $this->containerCacheKey( $container ) ) ) {
@@ -1327,7 +1406,7 @@ abstract class FileBackendStore extends FileBackend {
 
                $contInfo = array(); // (resolved container name => cache value)
                // Get all cache entries for these container cache keys...
-               $values = $this->memCache->getBatch( array_keys( $contNames ) );
+               $values = $this->memCache->getMulti( array_keys( $contNames ) );
                foreach ( $values as $cacheKey => $val ) {
                        $contInfo[$contNames[$cacheKey]] = $val;
                }
@@ -1352,7 +1431,7 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * Get the cache key for a file path
         *
-        * @param $path Storage path
+        * @param $path string Storage path
         * @return string
         */
        private function fileCacheKey( $path ) {
@@ -1362,9 +1441,8 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * Set the cached stat info for a file path
         *
-        * @param $path Storage path
+        * @param $path string Storage path
         * @param $val mixed Information to cache
-        * @return void
         */
        final protected function setFileCache( $path, $val ) {
                $this->memCache->set( $this->fileCacheKey( $path ), $val, 7*86400 );
@@ -1373,8 +1451,7 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * Delete the cached stat info for a file path
         *
-        * @param $path Storage path
-        * @return void
+        * @param $path string Storage path
         */
        final protected function deleteFileCache( $path ) {
                if ( !$this->memCache->delete( $this->fileCacheKey( $path ) ) ) {
@@ -1412,7 +1489,7 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
                // Get all cache entries for these container cache keys...
-               $values = $this->memCache->getBatch( array_keys( $pathNames ) );
+               $values = $this->memCache->getMulti( array_keys( $pathNames ) );
                foreach ( $values as $cacheKey => $val ) {
                        if ( is_array( $val ) ) {
                                $this->trimCache(); // limit memory
@@ -1616,6 +1693,12 @@ abstract class FileBackendStoreShardListIterator implements Iterator {
  * Iterator for listing directories
  */
 class FileBackendStoreShardDirIterator extends FileBackendStoreShardListIterator {
+       /**
+        * @param string $container
+        * @param string $dir
+        * @param array $params
+        * @return Array|null|Traversable
+        */
        protected function listFromShard( $container, $dir, array $params ) {
                return $this->backend->getDirectoryListInternal( $container, $dir, $params );
        }
@@ -1625,6 +1708,12 @@ class FileBackendStoreShardDirIterator extends FileBackendStoreShardListIterator
  * Iterator for listing regular files
  */
 class FileBackendStoreShardFileIterator extends FileBackendStoreShardListIterator {
+       /**
+        * @param string $container
+        * @param string $dir
+        * @param array $params
+        * @return Array|null|Traversable
+        */
        protected function listFromShard( $container, $dir, array $params ) {
                return $this->backend->getFileListInternal( $container, $dir, $params );
        }
index d134edd..d9fbafd 100644 (file)
@@ -438,10 +438,18 @@ abstract class FileOp {
  *     overwriteSame : override any existing file at destination
  */
 class StoreFileOp extends FileOp {
+
+       /**
+        * @return array
+        */
        protected function allowedParams() {
                return array( array( 'src', 'dst' ), array( 'overwrite', 'overwriteSame' ) );
        }
 
+       /**
+        * @param $predicates array
+        * @return Status
+        */
        protected function doPrecheck( array &$predicates ) {
                $status = Status::newGood();
                // Check if the source file exists on the file system
@@ -450,10 +458,13 @@ class StoreFileOp extends FileOp {
                        return $status;
                // Check if the source file is too big
                } elseif ( filesize( $this->params['src'] ) > $this->backend->maxFileSizeInternal() ) {
+                       $status->fatal( 'backend-fail-maxsize',
+                               $this->params['dst'], $this->backend->maxFileSizeInternal() );
                        $status->fatal( 'backend-fail-store', $this->params['src'], $this->params['dst'] );
                        return $status;
                // Check if a file can be placed at the destination
                } elseif ( !$this->backend->isPathUsableInternal( $this->params['dst'] ) ) {
+                       $status->fatal( 'backend-fail-usable', $this->params['dst'] );
                        $status->fatal( 'backend-fail-store', $this->params['src'], $this->params['dst'] );
                        return $status;
                }
@@ -467,6 +478,9 @@ class StoreFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
+       /**
+        * @return Status
+        */
        protected function doAttempt() {
                // Store the file at the destination
                if ( !$this->destSameAsSource ) {
@@ -475,6 +489,9 @@ class StoreFileOp extends FileOp {
                return Status::newGood();
        }
 
+       /**
+        * @return bool|string
+        */
        protected function getSourceSha1Base36() {
                wfSuppressWarnings();
                $hash = sha1_file( $this->params['src'] );
@@ -507,10 +524,13 @@ class CreateFileOp extends FileOp {
                $status = Status::newGood();
                // Check if the source data is too big
                if ( strlen( $this->getParam( 'content' ) ) > $this->backend->maxFileSizeInternal() ) {
+                       $status->fatal( 'backend-fail-maxsize',
+                               $this->params['dst'], $this->backend->maxFileSizeInternal() );
                        $status->fatal( 'backend-fail-create', $this->params['dst'] );
                        return $status;
                // Check if a file can be placed at the destination
                } elseif ( !$this->backend->isPathUsableInternal( $this->params['dst'] ) ) {
+                       $status->fatal( 'backend-fail-usable', $this->params['dst'] );
                        $status->fatal( 'backend-fail-create', $this->params['dst'] );
                        return $status;
                }
@@ -524,6 +544,9 @@ class CreateFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
+       /**
+        * @return Status
+        */
        protected function doAttempt() {
                if ( !$this->destSameAsSource ) {
                        // Create the file at the destination
@@ -532,10 +555,16 @@ class CreateFileOp extends FileOp {
                return Status::newGood();
        }
 
+       /**
+        * @return bool|String
+        */
        protected function getSourceSha1Base36() {
                return wfBaseConvert( sha1( $this->params['content'] ), 16, 36, 31 );
        }
 
+       /**
+        * @return array
+        */
        protected function doStoragePathsChanged() {
                return array( $this->params['dst'] );
        }
@@ -550,10 +579,18 @@ class CreateFileOp extends FileOp {
  *     overwriteSame : override any existing file at destination
  */
 class CopyFileOp extends FileOp {
+
+       /**
+        * @return array
+        */
        protected function allowedParams() {
                return array( array( 'src', 'dst' ), array( 'overwrite', 'overwriteSame' ) );
        }
 
+       /**
+        * @param $predicates array
+        * @return Status
+        */
        protected function doPrecheck( array &$predicates ) {
                $status = Status::newGood();
                // Check if the source file exists
@@ -562,6 +599,7 @@ class CopyFileOp extends FileOp {
                        return $status;
                // Check if a file can be placed at the destination
                } elseif ( !$this->backend->isPathUsableInternal( $this->params['dst'] ) ) {
+                       $status->fatal( 'backend-fail-usable', $this->params['dst'] );
                        $status->fatal( 'backend-fail-copy', $this->params['src'], $this->params['dst'] );
                        return $status;
                }
@@ -575,6 +613,9 @@ class CopyFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
+       /**
+        * @return Status
+        */
        protected function doAttempt() {
                // Do nothing if the src/dst paths are the same
                if ( $this->params['src'] !== $this->params['dst'] ) {
@@ -586,10 +627,16 @@ class CopyFileOp extends FileOp {
                return Status::newGood();
        }
 
+       /**
+        * @return array
+        */
        protected function doStoragePathsRead() {
                return array( $this->params['src'] );
        }
 
+       /**
+        * @return array
+        */
        protected function doStoragePathsChanged() {
                return array( $this->params['dst'] );
        }
@@ -604,10 +651,17 @@ class CopyFileOp extends FileOp {
  *     overwriteSame : override any existing file at destination
  */
 class MoveFileOp extends FileOp {
+       /**
+        * @return array
+        */
        protected function allowedParams() {
                return array( array( 'src', 'dst' ), array( 'overwrite', 'overwriteSame' ) );
        }
 
+       /**
+        * @param $predicates array
+        * @return Status
+        */
        protected function doPrecheck( array &$predicates ) {
                $status = Status::newGood();
                // Check if the source file exists
@@ -616,6 +670,7 @@ class MoveFileOp extends FileOp {
                        return $status;
                // Check if a file can be placed at the destination
                } elseif ( !$this->backend->isPathUsableInternal( $this->params['dst'] ) ) {
+                       $status->fatal( 'backend-fail-usable', $this->params['dst'] );
                        $status->fatal( 'backend-fail-move', $this->params['src'], $this->params['dst'] );
                        return $status;
                }
@@ -631,6 +686,9 @@ class MoveFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
+       /**
+        * @return Status
+        */
        protected function doAttempt() {
                // Do nothing if the src/dst paths are the same
                if ( $this->params['src'] !== $this->params['dst'] ) {
@@ -646,10 +704,16 @@ class MoveFileOp extends FileOp {
                return Status::newGood();
        }
 
+       /**
+        * @return array
+        */
        protected function doStoragePathsRead() {
                return array( $this->params['src'] );
        }
 
+       /**
+        * @return array
+        */
        protected function doStoragePathsChanged() {
                return array( $this->params['src'], $this->params['dst'] );
        }
@@ -662,12 +726,19 @@ class MoveFileOp extends FileOp {
  *     ignoreMissingSource : don't return an error if the file does not exist
  */
 class DeleteFileOp extends FileOp {
+       /**
+        * @return array
+        */
        protected function allowedParams() {
                return array( array( 'src' ), array( 'ignoreMissingSource' ) );
        }
 
        protected $needsDelete = true;
 
+       /**
+        * @param array $predicates
+        * @return Status
+        */
        protected function doPrecheck( array &$predicates ) {
                $status = Status::newGood();
                // Check if the source file exists
@@ -684,6 +755,9 @@ class DeleteFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
+       /**
+        * @return Status
+        */
        protected function doAttempt() {
                if ( $this->needsDelete ) {
                        // Delete the source file
@@ -692,6 +766,9 @@ class DeleteFileOp extends FileOp {
                return Status::newGood();
        }
 
+       /**
+        * @return array
+        */
        protected function doStoragePathsChanged() {
                return array( $this->params['src'] );
        }
index 049f2c5..d22a2ec 100644 (file)
@@ -1,5 +1,22 @@
 <?php
 /**
+ * Helper class for representing batch file operations.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  * @ingroup FileBackend
  * @author Aaron Schulz
@@ -169,7 +186,7 @@ class FileOpBatch {
         * within any given sub-batch do not depend on each other.
         * This will abort remaining ops on failure.
         *
-        * @param $performOps Array
+        * @param $pPerformOps Array
         * @param $status Status
         * @return bool Success
         */
index 0def61f..36d4334 100644 (file)
@@ -41,12 +41,14 @@ class SwiftFileBackend extends FileBackendStore {
        protected $auth; // Swift authentication handler
        protected $authTTL; // integer seconds
        protected $swiftAnonUser; // string; username to handle unauthenticated requests
+       protected $swiftUseCDN; // boolean; whether CloudFiles CDN is enabled
        protected $maxContCacheSize = 300; // integer; max containers with entries
 
        /** @var CF_Connection */
        protected $conn; // Swift connection handle
        protected $connStarted = 0; // integer UNIX timestamp
        protected $connContainers = array(); // container object cache
+       protected $connException; // CloudFiles exception
 
        /**
         * @see FileBackendStore::__construct()
@@ -56,6 +58,7 @@ class SwiftFileBackend extends FileBackendStore {
         *    swiftKey           : Swift authentication key for the above user
         *    swiftAuthTTL       : Swift authentication TTL (seconds)
         *    swiftAnonUser      : Swift user used for end-user requests (account:username)
+        *    swiftUseCDN        : Whether a Cloud Files Content Delivery Network is set up
         *    shardViaHashLevels : Map of container names to sharding config with:
         *                         'base'   : base of hash characters, 16 or 36
         *                         'levels' : the number of hash levels (and digits)
@@ -84,6 +87,9 @@ class SwiftFileBackend extends FileBackendStore {
                $this->shardViaHashLevels = isset( $config['shardViaHashLevels'] )
                        ? $config['shardViaHashLevels']
                        : '';
+               $this->swiftUseCDN = isset( $config['swiftUseCDN'] )
+                       ? $config['swiftUseCDN']
+                       : false;
                // Cache container info to mask latency
                $this->memCache = wfGetMainCache();
        }
@@ -168,9 +174,13 @@ class SwiftFileBackend extends FileBackendStore {
                        if ( !empty( $params['async'] ) ) { // deferred
                                $handle = $obj->write_async( $params['content'] );
                                $status->value = new SwiftFileOpHandle( $this, $params, 'Create', $handle );
+                               $status->value->affectedObjects[] = $obj;
                        } else { // actually write the object in Swift
                                $obj->write( $params['content'] );
+                               $this->purgeCDNCache( array( $obj ) );
                        }
+               } catch ( CDNNotEnabledException $e ) {
+                       // CDN not enabled; nothing to see here
                } catch ( BadContentTypeException $e ) {
                        $status->fatal( 'backend-fail-contenttype', $params['dst'] );
                } catch ( CloudFilesException $e ) { // some other exception?
@@ -250,10 +260,14 @@ class SwiftFileBackend extends FileBackendStore {
                                        $handle = $obj->write_async( $fp, filesize( $params['src'] ), true );
                                        $status->value = new SwiftFileOpHandle( $this, $params, 'Store', $handle );
                                        $status->value->resourcesToClose[] = $fp;
+                                       $status->value->affectedObjects[] = $obj;
                                }
                        } else { // actually write the object in Swift
                                $obj->load_from_filename( $params['src'], true ); // calls $obj->write()
+                               $this->purgeCDNCache( array( $obj ) );
                        }
+               } catch ( CDNNotEnabledException $e ) {
+                       // CDN not enabled; nothing to see here
                } catch ( BadContentTypeException $e ) {
                        $status->fatal( 'backend-fail-contenttype', $params['dst'] );
                } catch ( IOException $e ) {
@@ -317,12 +331,17 @@ class SwiftFileBackend extends FileBackendStore {
 
                // (b) Actually copy the file to the destination
                try {
+                       $dstObj = new CF_Object( $dContObj, $dstRel, false, false ); // skip HEAD
                        if ( !empty( $params['async'] ) ) { // deferred
                                $handle = $sContObj->copy_object_to_async( $srcRel, $dContObj, $dstRel );
                                $status->value = new SwiftFileOpHandle( $this, $params, 'Copy', $handle );
+                               $status->value->affectedObjects[] = $dstObj;
                        } else { // actually write the object in Swift
                                $sContObj->copy_object_to( $srcRel, $dContObj, $dstRel );
+                               $this->purgeCDNCache( array( $dstObj ) );
                        }
+               } catch ( CDNNotEnabledException $e ) {
+                       // CDN not enabled; nothing to see here
                } catch ( NoSuchObjectException $e ) { // source object does not exist
                        $status->fatal( 'backend-fail-copy', $params['src'], $params['dst'] );
                } catch ( CloudFilesException $e ) { // some other exception?
@@ -382,12 +401,19 @@ class SwiftFileBackend extends FileBackendStore {
 
                // (b) Actually move the file to the destination
                try {
+                       $srcObj = new CF_Object( $sContObj, $srcRel, false, false ); // skip HEAD
+                       $dstObj = new CF_Object( $dContObj, $dstRel, false, false ); // skip HEAD
                        if ( !empty( $params['async'] ) ) { // deferred
                                $handle = $sContObj->move_object_to_async( $srcRel, $dContObj, $dstRel );
                                $status->value = new SwiftFileOpHandle( $this, $params, 'Move', $handle );
+                               $status->value->affectedObjects[] = $srcObj;
+                               $status->value->affectedObjects[] = $dstObj;
                        } else { // actually write the object in Swift
                                $sContObj->move_object_to( $srcRel, $dContObj, $dstRel );
+                               $this->purgeCDNCache( array( $srcObj, $dstObj ) );
                        }
+               } catch ( CDNNotEnabledException $e ) {
+                       // CDN not enabled; nothing to see here
                } catch ( NoSuchObjectException $e ) { // source object does not exist
                        $status->fatal( 'backend-fail-move', $params['src'], $params['dst'] );
                } catch ( CloudFilesException $e ) { // some other exception?
@@ -423,12 +449,17 @@ class SwiftFileBackend extends FileBackendStore {
 
                try {
                        $sContObj = $this->getContainer( $srcCont );
+                       $srcObj = new CF_Object( $sContObj, $srcRel, false, false ); // skip HEAD
                        if ( !empty( $params['async'] ) ) { // deferred
                                $handle = $sContObj->delete_object_async( $srcRel );
                                $status->value = new SwiftFileOpHandle( $this, $params, 'Delete', $handle );
+                               $status->value->affectedObjects[] = $srcObj;
                        } else { // actually write the object in Swift
                                $sContObj->delete_object( $srcRel );
+                               $this->purgeCDNCache( array( $srcObj ) );
                        }
+               } catch ( CDNNotEnabledException $e ) {
+                       // CDN not enabled; nothing to see here
                } catch ( NoSuchContainerException $e ) {
                        $status->fatal( 'backend-fail-delete', $params['src'] );
                } catch ( NoSuchObjectException $e ) {
@@ -479,14 +510,19 @@ class SwiftFileBackend extends FileBackendStore {
                // (b) Create container as needed
                try {
                        $contObj = $this->createContainer( $fullCont );
+                       // Make container public to end-users...
                        if ( $this->swiftAnonUser != '' ) {
-                               // Make container public to end-users...
                                $status->merge( $this->setContainerAccess(
                                        $contObj,
                                        array( $this->auth->username, $this->swiftAnonUser ), // read
                                        array( $this->auth->username ) // write
                                ) );
                        }
+                       if ( $this->swiftUseCDN ) { // Rackspace style CDN
+                               $contObj->make_public();
+                       }
+               } catch ( CDNNotEnabledException $e ) {
+                       // CDN not enabled; nothing to see here
                } catch ( CloudFilesException $e ) { // some other exception?
                        $this->handleException( $e, $status, __METHOD__, $params );
                        return $status;
@@ -502,26 +538,31 @@ class SwiftFileBackend extends FileBackendStore {
        protected function doSecureInternal( $fullCont, $dir, array $params ) {
                $status = Status::newGood();
 
-               if ( $this->swiftAnonUser != '' ) {
-                       // Restrict container from end-users...
-                       try {
-                               // doPrepareInternal() should have been called,
-                               // so the Swift container should already exist...
-                               $contObj = $this->getContainer( $fullCont ); // normally a cache hit
-                               // NoSuchContainerException not thrown: container must exist
-                               if ( !isset( $contObj->mw_wasSecured ) ) {
-                                       $status->merge( $this->setContainerAccess(
-                                               $contObj,
-                                               array( $this->auth->username ), // read
-                                               array( $this->auth->username ) // write
-                                       ) );
-                                       // @TODO: when php-cloudfiles supports container
-                                       // metadata, we can make use of that to avoid RTTs
-                                       $contObj->mw_wasSecured = true; // avoid useless RTTs
-                               }
-                       } catch ( CloudFilesException $e ) { // some other exception?
-                               $this->handleException( $e, $status, __METHOD__, $params );
+               // Restrict container from end-users...
+               try {
+                       // doPrepareInternal() should have been called,
+                       // so the Swift container should already exist...
+                       $contObj = $this->getContainer( $fullCont ); // normally a cache hit
+                       // NoSuchContainerException not thrown: container must exist
+
+                       // Make container private to end-users...
+                       if ( $this->swiftAnonUser != '' && !isset( $contObj->mw_wasSecured ) ) {
+                               $status->merge( $this->setContainerAccess(
+                                       $contObj,
+                                       array( $this->auth->username ), // read
+                                       array( $this->auth->username ) // write
+                               ) );
+                               // @TODO: when php-cloudfiles supports container
+                               // metadata, we can make use of that to avoid RTTs
+                               $contObj->mw_wasSecured = true; // avoid useless RTTs
+                       }
+                       if ( $this->swiftUseCDN && $contObj->is_public() ) { // Rackspace style CDN
+                               $contObj->make_private();
                        }
+               } catch ( CDNNotEnabledException $e ) {
+                       // CDN not enabled; nothing to see here
+               } catch ( CloudFilesException $e ) { // some other exception?
+                       $this->handleException( $e, $status, __METHOD__, $params );
                }
 
                return $status;
@@ -612,7 +653,8 @@ class SwiftFileBackend extends FileBackendStore {
                $status = Status::newGood();
                $scopeLockS = $this->getScopedFileLocks( array( $path ), LockManager::LOCK_UW, $status );
                if ( $status->isOK() ) {
-                       $tmpFile = $this->getLocalCopy( array( 'src' => $path, 'latest' => 1 ) );
+                       # Do not stat the file in getLocalCopy() to avoid infinite loops
+                       $tmpFile = $this->getLocalCopy( array( 'src' => $path, 'latest' => 1, 'nostat' => 1 ) );
                        if ( $tmpFile ) {
                                $hash = $tmpFile->getSha1Base36();
                                if ( $hash !== false ) {
@@ -643,7 +685,7 @@ class SwiftFileBackend extends FileBackendStore {
                $data = false;
                try {
                        $sContObj = $this->getContainer( $srcCont );
-                       $obj = new CF_Object( $sContObj, $srcRel, false, false ); // skip HEAD request
+                       $obj = new CF_Object( $sContObj, $srcRel, false, false ); // skip HEAD
                        $data = $obj->read( $this->headersFromParams( $params ) );
                } catch ( NoSuchContainerException $e ) {
                } catch ( CloudFilesException $e ) { // some other exception?
@@ -700,6 +742,10 @@ class SwiftFileBackend extends FileBackendStore {
         */
        public function getDirListPageInternal( $fullCont, $dir, &$after, $limit, array $params ) {
                $dirs = array();
+               if ( $after === INF ) {
+                       return $dirs; // nothing more
+               }
+               wfProfileIn( __METHOD__ . '-' . $this->name );
 
                try {
                        $container = $this->getContainer( $fullCont );
@@ -711,7 +757,6 @@ class SwiftFileBackend extends FileBackendStore {
                                        if ( substr( $object, -1 ) === '/' ) {
                                                $dirs[] = $object; // directories end in '/'
                                        }
-                                       $after = $object; // update last item
                                }
                        // Recursive: list all dirs under $dir and its subdirs
                        } else {
@@ -737,15 +782,20 @@ class SwiftFileBackend extends FileBackendStore {
                                                }
                                                $lastDir = $objectDir;
                                        }
-                                       $after = $object; // update last item
                                }
                        }
+                       if ( count( $objects ) < $limit ) {
+                               $after = INF; // avoid a second RTT
+                       } else {
+                               $after = end( $objects ); // update last item
+                       }
                } catch ( NoSuchContainerException $e ) {
                } catch ( CloudFilesException $e ) { // some other exception?
                        $this->handleException( $e, null, __METHOD__,
                                array( 'cont' => $fullCont, 'dir' => $dir ) );
                }
 
+               wfProfileOut( __METHOD__ . '-' . $this->name );
                return $dirs;
        }
 
@@ -765,6 +815,10 @@ class SwiftFileBackend extends FileBackendStore {
         */
        public function getFileListPageInternal( $fullCont, $dir, &$after, $limit, array $params ) {
                $files = array();
+               if ( $after === INF ) {
+                       return $files; // nothing more
+               }
+               wfProfileIn( __METHOD__ . '-' . $this->name );
 
                try {
                        $container = $this->getContainer( $fullCont );
@@ -779,16 +833,21 @@ class SwiftFileBackend extends FileBackendStore {
                                }
                        // Recursive: list all files under $dir and its subdirs
                        } else { // files
-                               $files = $container->list_objects( $limit, $after, $prefix );
+                               $objects = $container->list_objects( $limit, $after, $prefix );
+                               $files = $objects;
+                       }
+                       if ( count( $objects ) < $limit ) {
+                               $after = INF; // avoid a second RTT
+                       } else {
+                               $after = end( $objects ); // update last item
                        }
-                       $after = end( $files ); // update last item
-                       reset( $files ); // reset pointer
                } catch ( NoSuchContainerException $e ) {
                } catch ( CloudFilesException $e ) { // some other exception?
                        $this->handleException( $e, null, __METHOD__,
                                array( 'cont' => $fullCont, 'dir' => $dir ) );
                }
 
+               wfProfileOut( __METHOD__ . '-' . $this->name );
                return $files;
        }
 
@@ -829,7 +888,7 @@ class SwiftFileBackend extends FileBackendStore {
 
                try {
                        $output = fopen( 'php://output', 'wb' );
-                       $obj = new CF_Object( $cont, $srcRel, false, false ); // skip HEAD request
+                       $obj = new CF_Object( $cont, $srcRel, false, false ); // skip HEAD
                        $obj->stream( $output, $this->headersFromParams( $params ) );
                } catch ( CloudFilesException $e ) { // some other exception?
                        $this->handleException( $e, $status, __METHOD__, $params );
@@ -848,7 +907,8 @@ class SwiftFileBackend extends FileBackendStore {
                        return null;
                }
 
-               if ( !$this->fileExists( $params ) ) {
+               # Check the recursion guard to avoid loops when filling metadata
+               if ( empty( $params['nostat'] ) && !$this->fileExists( $params ) ) {
                        return null;
                }
 
@@ -922,6 +982,7 @@ class SwiftFileBackend extends FileBackendStore {
                        try { // catch exceptions; update status
                                $function = '_getResponse' . $fileOpHandles[$index]->call;
                                $this->$function( $cfOp, $status, $fileOpHandles[$index]->params );
+                               $this->purgeCDNCache( $fileOpHandles[$index]->affectedObjects );
                        } catch ( CloudFilesException $e ) { // some other exception?
                                $this->handleException( $e, $status,
                                        __CLASS__ . ":$function", $fileOpHandles[$index]->params );
@@ -929,10 +990,6 @@ class SwiftFileBackend extends FileBackendStore {
                        $statuses[$index] = $status;
                }
 
-               foreach ( $fileOpHandles as $fileOpHandle ) {
-                       $fileOpHandle->closeResources();
-               }
-
                return $statuses;
        }
 
@@ -960,15 +1017,36 @@ class SwiftFileBackend extends FileBackendStore {
                return $req->execute(); // should return 204
        }
 
+       /**
+        * Purge the CDN cache of affected objects if CDN caching is enabled
+        *
+        * @param $objects Array List of CF_Object items
+        * @return void
+        */
+       public function purgeCDNCache( array $objects ) {
+               if ( $this->swiftUseCDN ) { // Rackspace style CDN
+                       foreach ( $objects as $object ) {
+                               try {
+                                       $object->purge_from_cdn();
+                               } catch ( CDNNotEnabledException $e ) {
+                                       // CDN not enabled; nothing to see here
+                               } catch ( CloudFilesException $e ) {
+                                       $this->handleException( $e, null, __METHOD__,
+                                               array( 'cont' => $object->container->name, 'obj' => $object->name ) );
+                               }
+                       }
+               }
+       }
+
        /**
         * Get a connection to the Swift proxy
         *
         * @return CF_Connection|bool False on failure
-        * @throws InvalidResponseException
+        * @throws CloudFilesException
         */
        protected function getConnection() {
-               if ( $this->conn === false ) {
-                       throw new InvalidResponseException; // failed last attempt
+               if ( $this->connException instanceof Exception ) {
+                       throw $this->connException; // failed last attempt
                }
                // Session keys expire after a while, so we renew them periodically
                if ( $this->conn && ( time() - $this->connStarted ) > $this->authTTL ) {
@@ -976,21 +1054,18 @@ class SwiftFileBackend extends FileBackendStore {
                        $this->conn = null;
                }
                // Authenticate with proxy and get a session key...
-               if ( $this->conn === null ) {
+               if ( !$this->conn ) {
+                       $this->connStarted = 0;
                        $this->connContainers = array();
                        try {
                                $this->auth->authenticate();
                                $this->conn = new CF_Connection( $this->auth );
                                $this->connStarted = time();
-                       } catch ( AuthenticationException $e ) {
-                               $this->conn = false; // don't keep re-trying
-                       } catch ( InvalidResponseException $e ) {
-                               $this->conn = false; // don't keep re-trying
+                       } catch ( CloudFilesException $e ) {
+                               $this->connException = $e; // don't keep re-trying
+                               throw $e; // throw it back
                        }
                }
-               if ( !$this->conn ) {
-                       throw new InvalidResponseException; // auth/connection problem
-               }
                return $this->conn;
        }
 
@@ -1008,8 +1083,7 @@ class SwiftFileBackend extends FileBackendStore {
         * @param $container string Container name
         * @param $bypassCache bool Bypass all caches and load from Swift
         * @return CF_Container
-        * @throws NoSuchContainerException
-        * @throws InvalidResponseException
+        * @throws CloudFilesException
         */
        protected function getContainer( $container, $bypassCache = false ) {
                $conn = $this->getConnection(); // Swift proxy connection
@@ -1117,6 +1191,8 @@ class SwiftFileBackend extends FileBackendStore {
 class SwiftFileOpHandle extends FileBackendStoreOpHandle {
        /** @var CF_Async_Op */
        public $cfOp;
+       /** @var Array */
+       public $affectedObjects = array();
 
        public function __construct( $backend, array $params, $call, CF_Async_Op $cfOp ) {
                $this->backend = $backend;
index 078f3be..0a09894 100644 (file)
@@ -44,16 +44,18 @@ class DBFileJournal extends FileJournal {
 
        /**
         * @see FileJournal::logChangeBatch()
-        * @return Status 
+        * @return Status
         */
        protected function doLogChangeBatch( array $entries, $batchId ) {
                $status = Status::newGood();
 
-               $dbw = $this->getMasterDB();
-               if ( !$dbw ) {
+               try {
+                       $dbw = $this->getMasterDB();
+               } catch ( DBError $e ) {
                        $status->fatal( 'filejournal-fail-dbconnect', $this->backend );
                        return $status;
                }
+
                $now = wfTimestamp( TS_UNIX );
 
                $data = array();
@@ -81,9 +83,39 @@ class DBFileJournal extends FileJournal {
                return $status;
        }
 
+       /**
+        * @see FileJournal::doGetChangeEntries()
+        * @return Array
+        * @throws DBError
+        */
+       protected function doGetChangeEntries( $start, $limit ) {
+               $dbw = $this->getMasterDB();
+
+               $res = $dbw->select( 'filejournal', '*',
+                       array(
+                               'fj_backend' => $this->backend,
+                               'fj_id >= ' . $dbw->addQuotes( (int)$start ) ), // $start may be 0
+                       __METHOD__,
+                       array_merge( array( 'ORDER BY' => 'fj_id ASC' ),
+                               $limit ? array( 'LIMIT' => $limit ) : array() )
+               );
+
+               $entries = array();
+               foreach ( $res as $row ) {
+                       $item = array();
+                       foreach ( (array)$row as $key => $value ) {
+                               $item[substr( $key, 3 )] = $value; // "fj_op" => "op"
+                       }
+                       $entries[] = $item;
+               }
+
+               return $entries;
+       }
+
        /**
         * @see FileJournal::purgeOldLogs()
         * @return Status
+        * @throws DBError
         */
        protected function doPurgeOldLogs() {
                $status = Status::newGood();
@@ -92,38 +124,26 @@ class DBFileJournal extends FileJournal {
                }
 
                $dbw = $this->getMasterDB();
-               if ( !$dbw ) {
-                       $status->fatal( 'filejournal-fail-dbconnect', $this->backend );
-                       return $status;
-               }
                $dbCutoff = $dbw->timestamp( time() - 86400 * $this->ttlDays );
 
-               try {
-                       $dbw->begin();
-                       $dbw->delete( 'filejournal',
-                               array( 'fj_timestamp < ' . $dbw->addQuotes( $dbCutoff ) ),
-                               __METHOD__
-                       );
-                       $dbw->commit();
-               } catch ( DBError $e ) {
-                       $status->fatal( 'filejournal-fail-dbquery', $this->backend );
-                       return $status;
-               }
+               $dbw->begin();
+               $dbw->delete( 'filejournal',
+                       array( 'fj_timestamp < ' . $dbw->addQuotes( $dbCutoff ) ),
+                       __METHOD__
+               );
+               $dbw->commit();
 
                return $status;
        }
 
        /**
         * Get a master connection to the logging DB
-        * 
-        * @return DatabaseBase|null 
+        *
+        * @return DatabaseBase
+        * @throws DBError
         */
        protected function getMasterDB() {
-               try {
-                       $lb = wfGetLBFactory()->newMainLB();
-                       return $lb->getConnection( DB_MASTER, array(), $this->wiki );
-               } catch ( DBConnectionError $e ) {
-                       return null;
-               }
+               $lb = wfGetLBFactory()->newMainLB();
+               return $lb->getConnection( DB_MASTER, array(), $this->wiki );
        }
 }
index 99f2887..234788b 100644 (file)
@@ -52,9 +52,10 @@ abstract class FileJournal {
 
        /**
         * Create an appropriate FileJournal object from config
-        * 
+        *
         * @param $config Array
         * @param $backend string A registered file backend name
+        * @throws MWException
         * @return FileJournal
         */
        final public static function factory( array $config, $backend ) {
@@ -109,10 +110,47 @@ abstract class FileJournal {
         */
        abstract protected function doLogChangeBatch( array $entries, $batchId );
 
+       /**
+        * Get an array of file change log entries.
+        * A starting change ID and/or limit can be specified.
+        *
+        * The result as a list of associative arrays, each having:
+        *     id         : unique, monotonic, ID for this change
+        *     batch_uuid : UUID for an operation batch
+        *     backend    : the backend name
+        *     op         : primitive operation (create,update,delete)
+        *     path       : affected storage path
+        *     path_sha1  : base 36 sha1 of the affected storage path
+        *     timestamp  : TS_MW timestamp of the batch change
+
+        * Also, $next is updated to the ID of the next entry.
+        *
+        * @param $start integer Starting change ID or null
+        * @param $limit integer Maximum number of items to return
+        * @param &$next string
+        * @return Array
+        */
+       final public function getChangeEntries( $start = null, $limit = 0, &$next = null ) {
+               $entries = $this->doGetChangeEntries( $start, $limit ? $limit + 1 : 0 );
+               if ( $limit && count( $entries ) > $limit ) {
+                       $last = array_pop( $entries ); // remove the extra entry
+                       $next = $last['id']; // update for next call
+               } else {
+                       $next = null; // end of list
+               }
+               return $entries;
+       }
+
+       /**
+        * @see FileJournal::getChangeEntries()
+        * @return Array
+        */
+       abstract protected function doGetChangeEntries( $start, $limit );
+
        /**
         * Purge any old log entries
-        * 
-        * @return Status 
+        *
+        * @return Status
         */
        final public function purgeOldLogs() {
                return $this->doPurgeOldLogs();
@@ -132,12 +170,22 @@ abstract class FileJournal {
 class NullFileJournal extends FileJournal {
        /**
         * @see FileJournal::logChangeBatch()
-        * @return Status 
+        * @param $entries array
+        * @param $batchId string
+        * @return Status
         */
        protected function doLogChangeBatch( array $entries, $batchId ) {
                return Status::newGood();
        }
 
+       /**
+        * @see FileJournal::doGetChangeEntries()
+        * @return Array
+        */
+       protected function doGetChangeEntries( $start, $limit ) {
+               return array();
+       }
+
        /**
         * @see FileJournal::purgeOldLogs()
         * @return Status
index 0a0ba54..c2a5085 100644 (file)
@@ -113,6 +113,8 @@ class DBLockManager extends LockManager {
 
        /**
         * @see LockManager::doLock()
+        * @param $paths array
+        * @param $type int
         * @return Status
         */
        protected function doLock( array $paths, $type ) {
@@ -164,6 +166,8 @@ class DBLockManager extends LockManager {
 
        /**
         * @see LockManager::doUnlock()
+        * @param $paths array
+        * @param $type int
         * @return Status
         */
        protected function doUnlock( array $paths, $type ) {
@@ -438,11 +442,21 @@ class MySqlLockManager extends DBLockManager {
                self::LOCK_EX => self::LOCK_EX
        );
 
+       /**
+        * @param $lockDb string
+        * @param $db DatabaseBase
+        */
        protected function initConnection( $lockDb, DatabaseBase $db ) {
                # Let this transaction see lock rows from other transactions
                $db->query( "SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;" );
        }
 
+       /**
+        * @param $lockDb string
+        * @param $paths array
+        * @param $type int
+        * @return bool
+        */
        protected function doLockingQuery( $lockDb, array $paths, $type ) {
                $db = $this->getConnection( $lockDb );
                if ( !$db ) {
index 21a3a4e..4f3b959 100644 (file)
@@ -62,6 +62,8 @@ class FSLockManager extends LockManager {
 
        /**
         * @see LockManager::doLock()
+        * @param $paths array
+        * @param $type int
         * @return Status
         */
        protected function doLock( array $paths, $type ) {
@@ -84,6 +86,8 @@ class FSLockManager extends LockManager {
 
        /**
         * @see LockManager::doUnlock()
+        * @param $paths array
+        * @param $type int
         * @return Status
         */
        protected function doUnlock( array $paths, $type ) {
@@ -190,6 +194,11 @@ class FSLockManager extends LockManager {
                return $status;
        }
 
+       /**
+        * @param $path string
+        * @param $handlesToClose array
+        * @return Status
+        */
        private function closeLockHandles( $path, array $handlesToClose ) {
                $status = Status::newGood();
                foreach ( $handlesToClose as $handle ) {
@@ -203,6 +212,10 @@ class FSLockManager extends LockManager {
                return $status;
        }
 
+       /**
+        * @param $path string
+        * @return Status
+        */
        private function pruneKeyLockFiles( $path ) {
                $status = Status::newGood();
                if ( !count( $this->locksHeld[$path] ) ) {
index 4f78ede..7910285 100644 (file)
@@ -93,6 +93,8 @@ class LSLockManager extends LockManager {
 
        /**
         * @see LockManager::doLock()
+        * @param $paths array
+        * @param $type int
         * @return Status
         */
        protected function doLock( array $paths, $type ) {
@@ -146,6 +148,8 @@ class LSLockManager extends LockManager {
 
        /**
         * @see LockManager::doUnlock()
+        * @param $paths array
+        * @param $type int
         * @return Status
         */
        protected function doUnlock( array $paths, $type ) {
index 8b3e229..e41c777 100644 (file)
@@ -195,6 +195,8 @@ class ScopedLock {
 class NullLockManager extends LockManager {
        /**
         * @see LockManager::doLock()
+        * @param $paths array
+        * @param $type int
         * @return Status
         */
        protected function doLock( array $paths, $type ) {
@@ -203,6 +205,8 @@ class NullLockManager extends LockManager {
 
        /**
         * @see LockManager::doUnlock()
+        * @param $paths array
+        * @param $type int
         * @return Status
         */
        protected function doUnlock( array $paths, $type ) {
index 7caff62..b830855 100644 (file)
@@ -39,6 +39,7 @@ class LockManagerGroup {
        protected $managers = array();
 
        protected function __construct() {}
+
        /**
         * @return LockManagerGroup
         */
index c9395c6..2d6b218 100644 (file)
@@ -109,6 +109,8 @@ abstract class File {
         */
        protected $url, $extension, $name, $path, $hashPath, $pageCount, $transformScript;
 
+       protected $redirectTitle;
+
        /**
         * @var bool
         */
@@ -143,6 +145,7 @@ abstract class File {
         *
         * @param $title Title|string
         * @param $exception string|bool Use 'exception' to throw an error on bad titles
+        * @throws MWException
         * @return Title|null
         */
        static function normalizeTitle( $title, $exception = false ) {
@@ -1017,7 +1020,7 @@ abstract class File {
         *
         * @return array
         */
-       function getHistory($limit = null, $start = null, $end = null, $inc=true) {
+       function getHistory( $limit = null, $start = null, $end = null, $inc=true ) {
                return array();
        }
 
index ef9c3a5..1fcd35b 100644 (file)
@@ -90,14 +90,26 @@ class ForeignAPIFile extends File {
        }
 
        // Dummy functions...
+
+       /**
+        * @return bool
+        */
        public function exists() {
                return $this->mExists;
        }
 
+       /**
+        * @return bool
+        */
        public function getPath() {
                return false;
        }
 
+       /**
+        * @param Array $params
+        * @param int $flags
+        * @return bool|MediaTransformOutput
+        */
        function transform( $params, $flags = 0 ) {
                if( !$this->canRender() ) {
                        // show icon
@@ -117,6 +129,11 @@ class ForeignAPIFile extends File {
        }
 
        // Info we can get from API...
+
+       /**
+        * @param $page int
+        * @return int|number
+        */
        public function getWidth( $page = 1 ) {
                return isset( $this->mInfo['width'] ) ? intval( $this->mInfo['width'] ) : 0;
        }
@@ -129,6 +146,9 @@ class ForeignAPIFile extends File {
                return isset( $this->mInfo['height'] ) ? intval( $this->mInfo['height'] ) : 0;
        }
 
+       /**
+        * @return bool|null|string
+        */
        public function getMetadata() {
                if ( isset( $this->mInfo['metadata'] ) ) {
                        return serialize( self::parseMetadata( $this->mInfo['metadata'] ) );
@@ -136,6 +156,10 @@ class ForeignAPIFile extends File {
                return null;
        }
 
+       /**
+        * @param $metadata array
+        * @return array
+        */
        public static function parseMetadata( $metadata ) {
                if( !is_array( $metadata ) ) {
                        return $metadata;
@@ -147,28 +171,47 @@ class ForeignAPIFile extends File {
                return $ret;
        }
 
+       /**
+        * @return bool|int|null
+        */
        public function getSize() {
                return isset( $this->mInfo['size'] ) ? intval( $this->mInfo['size'] ) : null;
        }
 
+       /**
+        * @return null|string
+        */
        public function getUrl() {
                return isset( $this->mInfo['url'] ) ? strval( $this->mInfo['url'] ) : null;
        }
 
+       /**
+        * @param string $method
+        * @return int|null|string
+        */
        public function getUser( $method='text' ) {
                return isset( $this->mInfo['user'] ) ? strval( $this->mInfo['user'] ) : null;
        }
 
+       /**
+        * @return null|string
+        */
        public function getDescription() {
                return isset( $this->mInfo['comment'] ) ? strval( $this->mInfo['comment'] ) : null;
        }
 
+       /**
+        * @return null|String
+        */
        function getSha1() {
                return isset( $this->mInfo['sha1'] )
                        ? wfBaseConvert( strval( $this->mInfo['sha1'] ), 16, 36, 31 )
                        : null;
        }
 
+       /**
+        * @return bool|Mixed|string
+        */
        function getTimestamp() {
                return wfTimestamp( TS_MW,
                        isset( $this->mInfo['timestamp'] )
@@ -177,6 +220,9 @@ class ForeignAPIFile extends File {
                );
        }
 
+       /**
+        * @return string
+        */
        function getMimeType() {
                if( !isset( $this->mInfo['mime'] ) ) {
                        $magic = MimeMagic::singleton();
@@ -185,12 +231,18 @@ class ForeignAPIFile extends File {
                return $this->mInfo['mime'];
        }
 
-       /// @todo FIXME: May guess wrong on file types that can be eg audio or video
+       /**
+        * @todo FIXME: May guess wrong on file types that can be eg audio or video
+        * @return int|string
+        */
        function getMediaType() {
                $magic = MimeMagic::singleton();
                return $magic->getMediaType( null, $this->getMimeType() );
        }
 
+       /**
+        * @return bool|string
+        */
        function getDescriptionUrl() {
                return isset( $this->mInfo['descriptionurl'] )
                        ? $this->mInfo['descriptionurl']
@@ -199,6 +251,7 @@ class ForeignAPIFile extends File {
 
        /**
         * Only useful if we're locally caching thumbs anyway...
+        * @param $suffix string
         * @return null|string
         */
        function getThumbPath( $suffix = '' ) {
@@ -213,6 +266,9 @@ class ForeignAPIFile extends File {
                }
        }
 
+       /**
+        * @return array
+        */
        function getThumbnails() {
                $dir = $this->getThumbPath( $this->getName() );
                $iter = $this->repo->getBackend()->getFileList( array( 'dir' => $dir ) );
@@ -242,6 +298,9 @@ class ForeignAPIFile extends File {
                $wgMemc->delete( $key );
        }
 
+       /**
+        * @param $options array
+        */
        function purgeThumbnails( $options = array() ) {
                global $wgMemc;
 
index fa7834a..91f6cb6 100644 (file)
@@ -54,23 +54,52 @@ class ForeignDBFile extends LocalFile {
                return $file;
        }
 
+       /**
+        * @param $srcPath String
+        * @param $flags int
+        * @throws MWException
+        */
        function publish( $srcPath, $flags = 0 ) {
                $this->readOnlyError();
        }
 
+       /**
+        * @param $oldver
+        * @param $desc string
+        * @param $license string
+        * @param $copyStatus string
+        * @param $source string
+        * @param $watch bool
+        * @param $timestamp bool|string
+        * @throws MWException
+        */
        function recordUpload( $oldver, $desc, $license = '', $copyStatus = '', $source = '',
                $watch = false, $timestamp = false ) {
                $this->readOnlyError();
        }
 
+       /**
+        * @param $versions array
+        * @param $unsuppress bool
+        * @throws MWException
+        */
        function restore( $versions = array(), $unsuppress = false ) {
                $this->readOnlyError();
        }
 
+       /**
+        * @param $reason string
+        * @param $suppress bool
+        * @throws MWException
+        */
        function delete( $reason, $suppress = false ) {
                $this->readOnlyError();
        }
 
+       /**
+        * @param $target Title
+        * @throws MWException
+        */
        function move( $target ) {
                $this->readOnlyError();
        }
index 6ac6ae4..cc66649 100644 (file)
@@ -440,6 +440,7 @@ class LocalFile extends File {
 
                $dbw->update( 'image',
                        array(
+                               'img_size'       => $this->size, // sanity
                                'img_width'      => $this->width,
                                'img_height'     => $this->height,
                                'img_bits'       => $this->bits,
@@ -632,6 +633,9 @@ class LocalFile extends File {
 
        /**
         * Fix thumbnail files from 1.4 or before, with extreme prejudice
+        * @TODO: do we still care about this? Perhaps a maintenance script
+        *        can be made instead. Enabling this code results in a serious
+        *        RTT regression for wikis without 404 handling.
         */
        function migrateThumbFile( $thumbName ) {
                $thumbDir = $this->getThumbPath();
@@ -654,10 +658,12 @@ class LocalFile extends File {
                }
                */
 
+               /*
                if ( $this->repo->fileExists( $thumbDir ) ) {
                        // Delete file where directory should be
                        $this->repo->cleanupBatch( array( $thumbDir ) );
                }
+               */
        }
 
        /** getHandler inherited */
@@ -670,8 +676,6 @@ class LocalFile extends File {
         * @return array first element is the base dir, then files in that base dir.
         */
        function getThumbnails( $archiveName = false ) {
-               $this->load();
-
                if ( $archiveName ) {
                        $dir = $this->getArchiveThumbPath( $archiveName );
                } else {
@@ -736,6 +740,8 @@ class LocalFile extends File {
         */
        function purgeOldThumbnails( $archiveName ) {
                global $wgUseSquid;
+               wfProfileIn( __METHOD__ );
+
                // Get a list of old thumbnails and URLs
                $files = $this->getThumbnails( $archiveName );
                $dir = array_shift( $files );
@@ -752,6 +758,8 @@ class LocalFile extends File {
                        }
                        SquidUpdate::purge( $urls );
                }
+
+               wfProfileOut( __METHOD__ );
        }
 
        /**
@@ -759,6 +767,7 @@ class LocalFile extends File {
         */
        function purgeThumbnails( $options = array() ) {
                global $wgUseSquid;
+               wfProfileIn( __METHOD__ );
 
                // Delete thumbnails
                $files = $this->getThumbnails();
@@ -785,6 +794,8 @@ class LocalFile extends File {
                        }
                        SquidUpdate::purge( $urls );
                }
+
+               wfProfileOut( __METHOD__ );
        }
 
        /**
@@ -1019,6 +1030,8 @@ class LocalFile extends File {
        function recordUpload2(
                $oldver, $comment, $pageText, $props = false, $timestamp = false, $user = null
        ) {
+               wfProfileIn( __METHOD__ );
+
                if ( is_null( $user ) ) {
                        global $wgUser;
                        $user = $wgUser;
@@ -1028,7 +1041,9 @@ class LocalFile extends File {
                $dbw->begin( __METHOD__ );
 
                if ( !$props ) {
+                       wfProfileIn( __METHOD__ . '-getProps' );
                        $props = $this->repo->getFileProps( $this->getVirtualUrl() );
+                       wfProfileOut( __METHOD__ . -'getProps' );
                }
 
                if ( $timestamp === false ) {
@@ -1041,15 +1056,10 @@ class LocalFile extends File {
                $props['timestamp'] = wfTimestamp( TS_MW, $timestamp ); // DB -> TS_MW
                $this->setProps( $props );
 
-               # Delete thumbnails
-               $this->purgeThumbnails();
-
-               # The file is already on its final location, remove it from the squid cache
-               SquidUpdate::purge( array( $this->getURL() ) );
-
                # Fail now if the file isn't there
                if ( !$this->fileExists ) {
                        wfDebug( __METHOD__ . ": File " . $this->getRel() . " went missing!\n" );
+                       wfProfileOut( __METHOD__ );
                        return false;
                }
 
@@ -1078,7 +1088,6 @@ class LocalFile extends File {
                        __METHOD__,
                        'IGNORE'
                );
-
                if ( $dbw->affectedRows() == 0 ) {
                        # (bug 34993) Note: $oldver can be empty here, if the previous
                        # version of the file was broken. Allow registration of the new
@@ -1144,6 +1153,7 @@ class LocalFile extends File {
                $action = $reupload ? 'overwrite' : 'upload';
                $log->addEntry( $action, $descTitle, $comment, array(), $user );
 
+               wfProfileIn( __METHOD__ . '-edit' );
                if ( $descTitle->exists() ) {
                        # Create a null revision
                        $latest = $descTitle->getLatestRevID();
@@ -1168,6 +1178,7 @@ class LocalFile extends File {
                        # Squid and file cache for the description page are purged by doEdit.
                        $wikiPage->doEdit( $pageText, $comment, EDIT_NEW | EDIT_SUPPRESS_RC, false, $user );
                }
+               wfProfileOut( __METHOD__ . '-edit' );
 
                # Commit the transaction now, in case something goes wrong later
                # The most important thing is that files don't get lost, especially archives
@@ -1179,8 +1190,20 @@ class LocalFile extends File {
                # which in fact doesn't really exist (bug 24978)
                $this->saveToCache();
 
+               if ( $reupload ) {
+                       # Delete old thumbnails
+                       wfProfileIn( __METHOD__ . '-purge' );
+                       $this->purgeThumbnails();
+                       wfProfileOut( __METHOD__ . '-purge' );
+
+                       # Remove the old file from the squid cache
+                       SquidUpdate::purge( array( $this->getURL() ) );
+               }
+
                # Hooks, hooks, the magic of hooks...
+               wfProfileIn( __METHOD__ . '-hooks' );
                wfRunHooks( 'FileUpload', array( $this, $reupload, $descTitle->exists() ) );
+               wfProfileOut( __METHOD__ . '-hooks' );
 
                # Invalidate cache for all pages using this file
                $update = new HTMLCacheUpdate( $this->getTitle(), 'imagelinks' );
@@ -1194,6 +1217,7 @@ class LocalFile extends File {
                        $update->doUpdate();
                }
 
+               wfProfileOut( __METHOD__ );
                return true;
        }
 
@@ -1782,7 +1806,6 @@ class LocalFileDeleteBatch {
         * @return FileRepoStatus
         */
        function execute() {
-               global $wgUseSquid;
                wfProfileIn( __METHOD__ );
 
                $this->file->lock();
index bd3ff1e..40d7dca 100644 (file)
@@ -32,6 +32,13 @@ class OldLocalFile extends LocalFile {
        const CACHE_VERSION = 1;
        const MAX_CACHE_ROWS = 20;
 
+       /**
+        * @param $title Title
+        * @param $repo FileRepo
+        * @param $time null
+        * @return OldLocalFile
+        * @throws MWException
+        */
        static function newFromTitle( $title, $repo, $time = null ) {
                # The null default value is only here to avoid an E_STRICT
                if ( $time === null ) {
@@ -40,10 +47,21 @@ class OldLocalFile extends LocalFile {
                return new self( $title, $repo, $time, null );
        }
 
+       /**
+        * @param $title Title
+        * @param $repo FileRepo
+        * @param $archiveName
+        * @return OldLocalFile
+        */
        static function newFromArchiveName( $title, $repo, $archiveName ) {
                return new self( $title, $repo, null, $archiveName );
        }
 
+       /**
+        * @param $row
+        * @param $repo FileRepo
+        * @return OldLocalFile
+        */
        static function newFromRow( $row, $repo ) {
                $title = Title::makeTitle( NS_FILE, $row->oi_name );
                $file = new self( $title, $repo, null, $row->oi_archive_name );
@@ -76,7 +94,7 @@ class OldLocalFile extends LocalFile {
                        return false;
                }
        }
-       
+
        /**
         * Fields in the oldimage table
         * @return array
@@ -107,6 +125,7 @@ class OldLocalFile extends LocalFile {
         * @param $repo FileRepo
         * @param $time String: timestamp or null to load by archive name
         * @param $archiveName String: archive name or null to load by timestamp
+        * @throws MWException
         */
        function __construct( $title, $repo, $time, $archiveName ) {
                parent::__construct( $title, $repo );
@@ -117,10 +136,16 @@ class OldLocalFile extends LocalFile {
                }
        }
 
+       /**
+        * @return bool
+        */
        function getCacheKey() {
                return false;
        }
 
+       /**
+        * @return String
+        */
        function getArchiveName() {
                if ( !isset( $this->archive_name ) ) {
                        $this->load();
@@ -128,10 +153,16 @@ class OldLocalFile extends LocalFile {
                return $this->archive_name;
        }
 
+       /**
+        * @return bool
+        */
        function isOld() {
                return true;
        }
 
+       /**
+        * @return bool
+        */
        function isVisible() {
                return $this->exists() && !$this->isDeleted(File::DELETED_FILE);
        }
@@ -156,6 +187,10 @@ class OldLocalFile extends LocalFile {
                wfProfileOut( __METHOD__ );
        }
 
+       /**
+        * @param $prefix string
+        * @return array
+        */
        function getCacheFields( $prefix = 'img_' ) {
                $fields = parent::getCacheFields( $prefix );
                $fields[] = $prefix . 'archive_name';
@@ -163,10 +198,16 @@ class OldLocalFile extends LocalFile {
                return $fields;
        }
 
+       /**
+        * @return string
+        */
        function getRel() {
                return 'archive/' . $this->getHashPath() . $this->getArchiveName();
        }
 
+       /**
+        * @return string
+        */
        function getUrlRel() {
                return 'archive/' . $this->getHashPath() . rawurlencode( $this->getArchiveName() );
        }
@@ -188,14 +229,15 @@ class OldLocalFile extends LocalFile {
                wfDebug(__METHOD__.': upgrading '.$this->archive_name." to the current schema\n");
                $dbw->update( 'oldimage',
                        array(
-                               'oi_width' => $this->width,
-                               'oi_height' => $this->height,
-                               'oi_bits' => $this->bits,
+                               'oi_size'       => $this->size, // sanity
+                               'oi_width'      => $this->width,
+                               'oi_height'     => $this->height,
+                               'oi_bits'       => $this->bits,
                                'oi_media_type' => $this->media_type,
                                'oi_major_mime' => $major,
                                'oi_minor_mime' => $minor,
-                               'oi_metadata' => $this->metadata,
-                               'oi_sha1' => $this->sha1,
+                               'oi_metadata'   => $this->metadata,
+                               'oi_sha1'       => $this->sha1,
                        ), array(
                                'oi_name' => $this->getName(),
                                'oi_archive_name' => $this->archive_name ),
@@ -235,40 +277,45 @@ class OldLocalFile extends LocalFile {
                $this->load();
                return Revision::userCanBitfield( $this->deleted, $field, $user );
        }
-       
+
        /**
         * Upload a file directly into archive. Generally for Special:Import.
-        * 
+        *
         * @param $srcPath string File system path of the source file
-        * @param $archiveName string Full archive name of the file, in the form 
-        *      $timestamp!$filename, where $filename must match $this->getName()
+        * @param $archiveName string Full archive name of the file, in the form
+        *     $timestamp!$filename, where $filename must match $this->getName()
         *
+        * @param $timestamp string
+        * @param $comment string
+        * @param $user
+        * @param $flags int
         * @return FileRepoStatus
         */
        function uploadOld( $srcPath, $archiveName, $timestamp, $comment, $user, $flags = 0 ) {
                $this->lock();
-               
+
                $dstRel = 'archive/' . $this->getHashPath() . $archiveName;
                $status = $this->publishTo( $srcPath, $dstRel,
                        $flags & File::DELETE_SOURCE ? FileRepo::DELETE_SOURCE : 0
                );
-               
+
                if ( $status->isGood() ) {
                        if ( !$this->recordOldUpload( $srcPath, $archiveName, $timestamp, $comment, $user ) ) {
                                $status->fatal( 'filenotfound', $srcPath );
                        }
                }
-               
+
                $this->unlock();
-               
+
                return $status;
        }
-       
+
        /**
         * Record a file upload in the oldimage table, without adding log entries.
-        * 
+        *
         * @param $srcPath string File system path to the source file
         * @param $archiveName string The archive name of the file
+        * @param $timestamp string
         * @param $comment string Upload comment
         * @param $user User User who did this upload
         * @return bool
index b217d60..8d4a3f8 100644 (file)
@@ -34,7 +34,7 @@
  * @ingroup FileAbstraction
  */
 class UnregisteredLocalFile extends File {
-       var $title, $path, $mime, $dims;
+       var $title, $path, $mime, $dims, $metadata;
 
        /**
         * @var MediaHandler
@@ -62,12 +62,12 @@ class UnregisteredLocalFile extends File {
        /**
         * Create an UnregisteredLocalFile based on a path or a (title,repo) pair.
         * A FileRepo object is not required here, unlike most other File classes.
-        * 
+        *
         * @throws MWException
         * @param $title Title|bool
-        * @param $repo FileRepo
-        * @param $path string
-        * @param $mime string
+        * @param $repo FileRepo|bool
+        * @param $path string|bool
+        * @param $mime string|bool
         */
        function __construct( $title = false, $repo = false, $path = false, $mime = false ) {
                if ( !( $title && $repo ) && !$path ) {
@@ -94,6 +94,10 @@ class UnregisteredLocalFile extends File {
                $this->dims = array();
        }
 
+       /**
+        * @param $page int
+        * @return bool
+        */
        private function cachePageDimensions( $page = 1 ) {
                if ( !isset( $this->dims[$page] ) ) {
                        if ( !$this->getHandler() ) {
@@ -104,16 +108,27 @@ class UnregisteredLocalFile extends File {
                return $this->dims[$page];
        }
 
+       /**
+        * @param $page int
+        * @return number
+        */
        function getWidth( $page = 1 ) {
                $dim = $this->cachePageDimensions( $page );
                return $dim['width'];
        }
 
+       /**
+        * @param $page int
+        * @return number
+        */
        function getHeight( $page = 1 ) {
                $dim = $this->cachePageDimensions( $page );
                return $dim['height'];
        }
 
+       /**
+        * @return bool|string
+        */
        function getMimeType() {
                if ( !isset( $this->mime ) ) {
                        $magic = MimeMagic::singleton();
@@ -122,6 +137,10 @@ class UnregisteredLocalFile extends File {
                return $this->mime;
        }
 
+       /**
+        * @param $filename String
+        * @return Array|bool
+        */
        function getImageSize( $filename ) {
                if ( !$this->getHandler() ) {
                        return false;
@@ -129,6 +148,9 @@ class UnregisteredLocalFile extends File {
                return $this->handler->getImageSize( $this, $this->getLocalRefPath() );
        }
 
+       /**
+        * @return bool
+        */
        function getMetadata() {
                if ( !isset( $this->metadata ) ) {
                        if ( !$this->getHandler() ) {
@@ -140,6 +162,9 @@ class UnregisteredLocalFile extends File {
                return $this->metadata;
        }
 
+       /**
+        * @return bool|string
+        */
        function getURL() {
                if ( $this->repo ) {
                        return $this->repo->getZoneUrl( 'public' ) . '/' .
@@ -149,6 +174,9 @@ class UnregisteredLocalFile extends File {
                }
        }
 
+       /**
+        * @return bool|int
+        */
        function getSize() {
                $this->assertRepoDefined();
                $props = $this->repo->getFileProps( $this->path );
index f703c7a..12a84a1 100644 (file)
@@ -1607,6 +1607,8 @@ abstract class Installer {
 
                // Don't access the database
                $GLOBALS['wgUseDatabaseMessages'] = false;
+               // Don't cache langconv tables
+               $GLOBALS['wgLanguageConverterCacheType'] = CACHE_NONE;
                // Debug-friendly
                $GLOBALS['wgShowExceptionDetails'] = true;
                // Don't break forms
index a53905f..0065247 100644 (file)
  * @defgroup JobQueue JobQueue
  */
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( "This file is part of MediaWiki, it is not a valid entry point\n" );
-}
-
 /**
  * Class to both describe a background job and handle jobs.
  *
index 4ef59ed..cae3f12 100644 (file)
  * @file
  */
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( 1 );
-}
-
 require_once dirname( __FILE__ ) . '/Services_JSON.php';
 
 /**
index cdb66c4..2b26640 100644 (file)
@@ -66,7 +66,7 @@ abstract class BagOStuff {
         * @param $keys Array List of strings
         * @return Array
         */
-       public function getBatch( array $keys ) {
+       public function getMulti( array $keys ) {
                $res = array();
                foreach ( $keys as $key ) {
                        $res[$key] = $this->get( $key );
@@ -87,7 +87,7 @@ abstract class BagOStuff {
         * Delete an item.
         * @param $key string
         * @param $time int Amount of time to delay the operation (mostly memcached-specific)
-        * @return bool success
+        * @return bool True if the item was deleted or not found, false on failure
         */
        abstract public function delete( $key, $time = 0 );
 
index 49cad8c..1312866 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Base class for memcached clients.
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
index 9c43ede..3c26487 100644 (file)
@@ -1,5 +1,26 @@
 <?php
-
+/**
+ * Object caching using memcached.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Cache
+ */
 /**
  * A wrapper class for the PECL memcached client
  * 
@@ -58,8 +79,8 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
                                $this->client->setOption( Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_PHP );
                                break;
                        case 'igbinary':
-                               if ( !extension_loaded( 'igbinary' ) ) {
-                                       throw new MWException( __CLASS__.': the igbinary extension is not loaded ' . 
+                               if ( !Memcached::HAVE_IGBINARY ) {
+                                       throw new MWException( __CLASS__.': the igbinary extension is not available ' . 
                                                'but igbinary serialization was requested.' );
                                }
                                $this->client->setOption( Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_IGBINARY );
@@ -100,7 +121,13 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
         */
        public function delete( $key, $time = 0 ) {
                $this->debugLog( "delete($key)" );
-               return $this->checkResult( $key, parent::delete( $key, $time ) );
+               $result = parent::delete( $key, $time );
+               if ( $result === false && $this->client->getResultCode() === Memcached::RES_NOTFOUND ) {
+                       // "Not found" is counted as success in our interface
+                       return true;
+               } else {
+                       return $this->checkResult( $key, $result );
+               }
        }
 
        /**
@@ -186,8 +213,8 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
         * @param $keys Array
         * @return Array
         */
-       public function getBatch( array $keys ) {
-               $this->debugLog( 'getBatch(' . implode( ', ', $keys ) . ')' );
+       public function getMulti( array $keys ) {
+               $this->debugLog( 'getMulti(' . implode( ', ', $keys ) . ')' );
                $callback = array( $this, 'encodeKey' );
                $result = $this->client->getMulti( array_map( $callback, $keys ) );
                return $this->checkResult( false, $result );
index eefbb17..c562134 100644 (file)
@@ -60,7 +60,7 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff {
         * @param $keys Array
         * @return Array
         */
-       public function getBatch( array $keys ) {
+       public function getMulti( array $keys ) {
                $callback = array( $this, 'encodeKey' );
                return $this->client->get_multi( array_map( $callback, $keys ) );
        }
index 54a67e0..e504887 100644 (file)
@@ -139,11 +139,11 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        public function get( $key ) {
-               $values = $this->getBatch( array( $key ) );
+               $values = $this->getMulti( array( $key ) );
                return $values[$key];
        }
 
-       public function getBatch( array $keys ) {
+       public function getMulti( array $keys ) {
                $values = array(); // array of (key => value)
 
                $keysByTableName = array();
index fa98dbf..35f187f 100644 (file)
@@ -3390,10 +3390,8 @@ class Parser {
                }
 
                # Replace raw HTML by a placeholder
-               # Add a blank line preceding, to prevent it from mucking up
-               # immediately preceding headings
                if ( $isHTML ) {
-                       $text = "\n\n" . $this->insertStripItem( $text );
+                       $text = $this->insertStripItem( $text );
                } elseif ( $nowiki && ( $this->ot['html'] || $this->ot['pre'] ) ) {
                        # Escape nowiki-style return values
                        $text = wfEscapeWikiText( $text );
index 3d2f2f8..19bcbf2 100644 (file)
@@ -78,15 +78,19 @@ interface PPFrame {
 
        const RECOVER_ORIG = 27; // = 1|2|8|16 no constant expression support in PHP yet
 
+       /** This constant exists when $indexOffset is supported in newChild() */
+       const SUPPORTS_INDEX_OFFSET = 1;
+
        /**
         * Create a child frame
         *
         * @param $args array
         * @param $title Title
+        * @param $indexOffset A number subtracted from the index attributes of the arguments
         *
         * @return PPFrame
         */
-       function newChild( $args = false, $title = false );
+       function newChild( $args = false, $title = false, $indexOffset = 0 );
 
        /**
         * Expand a document tree node
index 5bb951b..f991df2 100644 (file)
@@ -926,7 +926,7 @@ class PPFrame_DOM implements PPFrame {
         *
         * @return PPTemplateFrame_DOM
         */
-       function newChild( $args = false, $title = false ) {
+       function newChild( $args = false, $title = false, $indexOffset = 0 ) {
                $namedArgs = array();
                $numberedArgs = array();
                if ( $title === false ) {
@@ -938,6 +938,9 @@ class PPFrame_DOM implements PPFrame {
                                $args = $args->node;
                        }
                        foreach ( $args as $arg ) {
+                               if ( $arg instanceof PPNode ) {
+                                       $arg = $arg->node;
+                               }
                                if ( !$xpath ) {
                                        $xpath = new DOMXPath( $arg->ownerDocument );
                                }
@@ -947,6 +950,7 @@ class PPFrame_DOM implements PPFrame {
                                if ( $nameNodes->item( 0 )->hasAttributes() ) {
                                        // Numbered parameter
                                        $index = $nameNodes->item( 0 )->attributes->getNamedItem( 'index' )->textContent;
+                                       $index = $index - $indexOffset;
                                        $numberedArgs[$index] = $value->item( 0 );
                                        unset( $namedArgs[$index] );
                                } else {
@@ -1549,6 +1553,10 @@ class PPCustomFrame_DOM extends PPFrame_DOM {
                }
                return $this->args[$index];
        }
+
+       function getArguments() {
+               return $this->args;
+       }
 }
 
 /**
index 32ba707..f455a1d 100644 (file)
@@ -888,7 +888,7 @@ class PPFrame_Hash implements PPFrame {
         *
         * @return PPTemplateFrame_Hash
         */
-       function newChild( $args = false, $title = false ) {
+       function newChild( $args = false, $title = false, $indexOffset = 0 ) {
                $namedArgs = array();
                $numberedArgs = array();
                if ( $title === false ) {
@@ -904,8 +904,9 @@ class PPFrame_Hash implements PPFrame {
                                $bits = $arg->splitArg();
                                if ( $bits['index'] !== '' ) {
                                        // Numbered parameter
-                                       $numberedArgs[$bits['index']] = $bits['value'];
-                                       unset( $namedArgs[$bits['index']] );
+                                       $index = $bits['index'] - $indexOffset;
+                                       $numberedArgs[$index] = $bits['value'];
+                                       unset( $namedArgs[$index] );
                                } else {
                                        // Named parameter
                                        $name = trim( $this->expand( $bits['name'], PPFrame::STRIP_COMMENTS ) );
@@ -1496,6 +1497,10 @@ class PPCustomFrame_Hash extends PPFrame_Hash {
                }
                return $this->args[$index];
        }
+
+       function getArguments() {
+               return $this->args;
+       }
 }
 
 /**
index 42fd873..9e88494 100644 (file)
@@ -685,6 +685,7 @@ class ResourceLoader {
                }
 
                // Generate output
+               $isRaw = false;
                foreach ( $modules as $name => $module ) {
                        /**
                         * @var $module ResourceLoaderModule
@@ -763,15 +764,14 @@ class ResourceLoader {
                                $missing[] = $name;
                                unset( $modules[$name] );
                        }
+                       $isRaw |= $module->isRaw();
                        wfProfileOut( __METHOD__ . '-' . $name );
                }
 
                // Update module states
-               if ( $context->shouldIncludeScripts() ) {
+               if ( $context->shouldIncludeScripts() && !$context->getRaw() && !$isRaw ) {
                        // Set the state of modules loaded as only scripts to ready
-                       if ( count( $modules ) && $context->getOnly() === 'scripts'
-                               && !isset( $modules['startup'] ) )
-                       {
+                       if ( count( $modules ) && $context->getOnly() === 'scripts' ) {
                                $out .= self::makeLoaderStateScript(
                                        array_fill_keys( array_keys( $modules ), 'ready' ) );
                        }
index 4e28e76..0e96c6c 100644 (file)
@@ -41,6 +41,7 @@ class ResourceLoaderContext {
        protected $only;
        protected $version;
        protected $hash;
+       protected $raw;
 
        /* Methods */
 
@@ -64,6 +65,7 @@ class ResourceLoaderContext {
                $this->debug     = $request->getFuzzyBool( 'debug', $wgResourceLoaderDebug );
                $this->only      = $request->getVal( 'only' );
                $this->version   = $request->getVal( 'version' );
+               $this->raw       = $request->getFuzzyBool( 'raw' );
 
                $skinnames = Skin::getSkinNames();
                // If no skin is specified, or we don't recognize the skin, use the default skin
@@ -159,7 +161,7 @@ class ResourceLoaderContext {
                        $this->direction = $this->request->getVal( 'dir' );
                        if ( !$this->direction ) {
                                # directionality based on user language (see bug 6100)
-                               $this->direction = Language::factory( $this->language )->getDir();
+                               $this->direction = Language::factory( $this->getLanguage() )->getDir();
                        }
                }
                return $this->direction;
@@ -200,6 +202,13 @@ class ResourceLoaderContext {
                return $this->version;
        }
 
+       /**
+        * @return bool
+        */
+       public function getRaw() {
+               return $this->raw;
+       }
+
        /**
         * @return bool
         */
index e8542ac..f0892ec 100644 (file)
@@ -111,6 +111,8 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        protected $position = 'bottom';
        /** Boolean: Link to raw files in debug mode */
        protected $debugRaw = true;
+       /** Boolean: Whether mw.loader.state() call should be omitted */
+       protected $raw = false;
        /**
         * Array: Cache for mtime
         * @par Usage:
@@ -240,6 +242,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                                        break;
                                // Single booleans
                                case 'debugRaw':
+                               case 'raw':
                                        $this->{$member} = (bool) $option;
                                        break;
                        }
@@ -367,6 +370,13 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                return $this->dependencies;
        }
 
+       /**
+        * @return bool
+        */
+       public function isRaw() {
+               return $this->raw;
+       }
+
        /**
         * Get the last modified timestamp of this module.
         *
index fa76a25..035ff09 100644 (file)
@@ -246,6 +246,17 @@ abstract class ResourceLoaderModule {
                return 'bottom';
        }
 
+       /**
+        * Whether this module's JS expects to work without the client-side ResourceLoader module.
+        * Returning true from this function will prevent mw.loader.state() call from being
+        * appended to the bottom of the script.
+        *
+        * @return bool
+        */
+       public function isRaw() {
+               return false;
+       }
+
        /**
         * Get the loader JS for this module, if set.
         *
index 74724a6..467a1ac 100644 (file)
@@ -173,6 +173,13 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
 
        /* Methods */
 
+       /**
+        * @return bool
+        */
+       public function isRaw() {
+               return true;
+       }
+
        /**
         * @param $context ResourceLoaderContext
         * @return string
index a5ccccf..f08af95 100644 (file)
@@ -22,8 +22,6 @@
  * @author Roan Kattouw
  */
 
-defined( 'MEDIAWIKI' ) || die( 1 );
-
 /**
  * Abstraction for resource loader modules which pull from wiki pages
  *
index 5174567..6de4840 100644 (file)
@@ -52,6 +52,26 @@ class MostcategoriesPage extends QueryPage {
                );
        }
 
+       /**
+        * @param $db DatabaseBase
+        * @param $res
+        */
+       function preprocessResults( $db, $res ) {
+               # There's no point doing a batch check if we aren't caching results;
+               # the page must exist for it to have been pulled out of the table
+               if ( !$this->isCached() || !$res->numRows() ) {
+                       return;
+               }
+
+               $batch = new LinkBatch();
+               foreach ( $res as $row ) {
+                       $batch->add( $row->namespace, $row->title );
+               }
+               $batch->execute();
+
+               $res->seek( 0 );
+       }
+
        /**
         * @param $skin Skin
         * @param $result
@@ -59,9 +79,19 @@ class MostcategoriesPage extends QueryPage {
         */
        function formatResult( $skin, $result ) {
                $title = Title::makeTitleSafe( $result->namespace, $result->title );
+               if ( !$title ) {
+                       return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                               Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) );
+               }
+
+               if ( $this->isCached() ) {
+                       $link = Linker::link( $title );
+               } else {
+                       $link = Linker::linkKnown( $title );
+               }
 
                $count = $this->msg( 'ncategories' )->numParams( $result->value )->escaped();
-               $link = Linker::link( $title );
+
                return $this->getLanguage()->specialList( $link, $count );
        }
 }
index 47e8fbf..3c3ab36 100644 (file)
@@ -62,12 +62,12 @@ class MostlinkedPage extends QueryPage {
         * @param $res
         */
        function preprocessResults( $db, $res ) {
-               if( $db->numRows( $res ) > 0 ) {
+               if ( $res->numRows() > 0 ) {
                        $linkBatch = new LinkBatch();
                        foreach ( $res as $row ) {
                                $linkBatch->add( $row->namespace, $row->title );
                        }
-                       $db->dataSeek( $res, 0 );
+                       $res->seek( 0 );
                        $linkBatch->execute();
                }
        }
@@ -94,7 +94,8 @@ class MostlinkedPage extends QueryPage {
        function formatResult( $skin, $result ) {
                $title = Title::makeTitleSafe( $result->namespace, $result->title );
                if ( !$title ) {
-                       return '<!-- ' . htmlspecialchars( "Invalid title: [[$title]]" ) . ' -->';
+                       return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                               Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) );
                }
                $link = Linker::link( $title );
                $wlh = $this->makeWlhLink( $title,
index 6b817d2..a512ee6 100644 (file)
@@ -246,6 +246,14 @@ class MovePageForm extends UnlistedSpecialPage {
                // Byte limit (not string length limit) for wpReason and wpNewTitleMain
                // is enforced in the mediawiki.special.movePage module
 
+               $immovableNamespaces = array();
+
+               foreach ( array_keys( $this->getLanguage()->getNamespaces() ) as $nsId ) {
+                       if ( !MWNamespace::isMovable( $nsId ) ) {
+                               $immovableNamespaces[] = $nsId;
+                       }
+               }
+
                $out->addHTML(
                         Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->getTitle()->getLocalURL( 'action=submit' ), 'id' => 'movepage' ) ) .
                         Xml::openElement( 'fieldset' ) .
@@ -265,7 +273,10 @@ class MovePageForm extends UnlistedSpecialPage {
                                "</td>
                                <td class='mw-input'>" .
                                        Html::namespaceSelector(
-                                               array( 'selected' => $newTitle->getNamespace() ),
+                                               array(
+                                                       'selected' => $newTitle->getNamespace(),
+                                                       'exclude' => $immovableNamespaces
+                                               ),
                                                array( 'name' => 'wpNewTitleNs', 'id' => 'wpNewTitleNs' )
                                        ) .
                                        Xml::input( 'wpNewTitleMain', 60, $wgContLang->recodeForEdit( $newTitle->getText() ), array(
index 44097c8..4c32c30 100644 (file)
@@ -294,6 +294,8 @@ class SpecialNewpages extends IncludableSpecialPage {
         * @return String
         */
        public function formatRow( $result ) {
+               $title = Title::newFromRow( $result );
+
                # Revision deletion works on revisions, so we should cast one
                $row = array(
                                          'comment' => $result->rc_comment,
@@ -302,13 +304,13 @@ class SpecialNewpages extends IncludableSpecialPage {
                                          'user' => $result->rc_user,
                                        );
                $rev = new Revision( $row );
+               $rev->setTitle( $title );
 
                $classes = array();
 
                $lang = $this->getLanguage();
                $dm = $lang->getDirMark();
 
-               $title = Title::newFromRow( $result );
                $spanTime = Html::element( 'span', array( 'class' => 'mw-newpages-time' ),
                        $lang->userTimeAndDate( $result->rc_timestamp, $this->getUser() )
                );
index f140546..51520c8 100644 (file)
@@ -154,7 +154,7 @@ class SpecialPasswordReset extends FormSpecialPage {
                        $method = 'email';
                        $res = wfGetDB( DB_SLAVE )->select(
                                'user',
-                               '*',
+                               User::selectFields(),
                                array( 'user_email' => $data['Email'] ),
                                __METHOD__
                        );
index a7a87f0..bb384d4 100644 (file)
@@ -633,14 +633,18 @@ class SpecialRecentChanges extends IncludableSpecialPage {
         */
        function setTopText( FormOptions $opts ) {
                global $wgContLang;
-               $this->getOutput()->addWikiText(
-                       Html::rawElement( 'p',
-                               array( 'lang' => $wgContLang->getCode(), 'dir' => $wgContLang->getDir() ),
-                               "\n" . $this->msg( 'recentchangestext' )->inContentLanguage()->plain() . "\n"
-                       ), 
-                       /* $lineStart */ false,
-                       /* $interface */ false
-               );
+
+               $message = $this->msg( 'recentchangestext' )->inContentLanguage();
+               if ( !$message->isDisabled() ) {
+                       $this->getOutput()->addWikiText(
+                               Html::rawElement( 'p',
+                                       array( 'lang' => $wgContLang->getCode(), 'dir' => $wgContLang->getDir() ),
+                                       "\n" . $message->plain() . "\n"
+                               ),
+                               /* $lineStart */ false,
+                               /* $interface */ false
+                       );
+               }
        }
 
        /**
index 8622b92..ee04574 100644 (file)
@@ -43,7 +43,8 @@ class ShortPagesPage extends QueryPage {
                        'fields' => array ( 'page_namespace AS namespace',
                                        'page_title AS title',
                                        'page_len AS value' ),
-                       'conds' => array ( 'page_namespace' => NS_MAIN,
+                       'conds' => array ( 'page_namespace' =>
+                                       MWNamespace::getContentNamespaces(),
                                        'page_is_redirect' => 0 ),
                        'options' => array ( 'USE INDEX' => 'page_redirect_namespace_len' )
                );
@@ -81,7 +82,11 @@ class ShortPagesPage extends QueryPage {
        function formatResult( $skin, $result ) {
                $dm = $this->getLanguage()->getDirMark();
 
-               $title = Title::makeTitle( $result->namespace, $result->title );
+               $title = Title::makeTitleSafe( $result->namespace, $result->title );
+               if ( !$title ) {
+                       return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                               Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) );
+               }
 
                $hlink = Linker::linkKnown(
                        $title,
index 1fc8ea5..df720a1 100644 (file)
@@ -21,9 +21,6 @@
  * @ingroup SpecialPage
  */
 
-if (!defined('MEDIAWIKI'))
-       die;
-
 /**
  * A special page that lists tags for edits
  *
index c4f99f8..4bd0232 100644 (file)
@@ -68,13 +68,15 @@ class UnwatchedpagesPage extends QueryPage {
        function formatResult( $skin, $result ) {
                global $wgContLang;
 
-               $nt = Title::makeTitle( $result->namespace, $result->title );
+               $nt = Title::makeTitleSafe( $result->namespace, $result->title );
+               if ( !$nt ) {
+                       return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                               Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) );
+               }
+
                $text = $wgContLang->convert( $nt->getPrefixedText() );
 
-               $plink = Linker::linkKnown(
-                       $nt,
-                       htmlspecialchars( $text )
-               );
+               $plink = Linker::linkKnown( $nt, htmlspecialchars( $text ) );
                $token = WatchAction::getWatchToken( $nt, $this->getUser() );
                $wlink = Linker::linkKnown(
                        $nt,
index eafdde4..a81eb5b 100644 (file)
@@ -91,14 +91,6 @@ class SpecialWatchlist extends SpecialPage {
                        return;
                }
 
-               if( ( $wgEnotifWatchlist || $wgShowUpdatedMarker ) && $request->getVal( 'reset' ) &&
-                       $request->wasPosted() )
-               {
-                       $user->clearAllNotifications();
-                       $output->redirect( $this->getTitle()->getFullUrl() );
-                       return;
-               }
-
                $nitems = $this->countItems();
                if ( $nitems == 0 ) {
                        $output->addWikiMsg( 'nowatchlist' );
@@ -152,16 +144,16 @@ class SpecialWatchlist extends SpecialPage {
                $invert = $request->getBool( 'invert' );
                $associated = $request->getBool( 'associated' );
                if ( !is_null( $nameSpace ) ) {
-                       $eq_op = $invert ? '!=' : '=';\r
+                       $eq_op = $invert ? '!=' : '=';
                        $bool_op = $invert ? 'AND' : 'OR';
                        $nameSpace = intval( $nameSpace ); // paranioa
                        if ( !$associated ) {
                                $nameSpaceClause = "rc_namespace $eq_op $nameSpace";
                        } else {
-                               $associatedNS = MWNamespace::getAssociated( $nameSpace );\r
+                               $associatedNS = MWNamespace::getAssociated( $nameSpace );
                                $nameSpaceClause =
-                                       "rc_namespace $eq_op $nameSpace " .\r
-                                       $bool_op .\r
+                                       "rc_namespace $eq_op $nameSpace " .
+                                       $bool_op .
                                        " rc_namespace $eq_op $associatedNS";
                        }
                } else {
@@ -190,6 +182,14 @@ class SpecialWatchlist extends SpecialPage {
                        wfAppendToArrayIfNotDefault( $name, $values[$name], $defaults, $nondefaults );
                }
 
+               if( ( $wgEnotifWatchlist || $wgShowUpdatedMarker ) && $request->getVal( 'reset' ) &&
+                       $request->wasPosted() )
+               {
+                       $user->clearAllNotifications();
+                       $output->redirect( $this->getTitle()->getFullUrl( $nondefaults ) );
+                       return;
+               }
+
                $dbr = wfGetDB( DB_SLAVE, 'watchlist' );
 
                # Possible where conditions
@@ -263,8 +263,11 @@ class SpecialWatchlist extends SpecialPage {
                                                'id' => 'mw-watchlist-resetbutton' ) ) .
                                        $this->msg( 'wlheader-showupdated' )->parse() . ' ' .
                                        Xml::submitButton( $this->msg( 'enotif_reset' )->text(), array( 'name' => 'dummy' ) ) .
-                                       Html::hidden( 'reset', 'all' ) .
-                                       Xml::closeElement( 'form' );
+                                       Html::hidden( 'reset', 'all' );
+                                       foreach ( $nondefaults as $key => $value ) {
+                                               $form .= Html::hidden( $key, $value );
+                                       }
+                                       $form .= Xml::closeElement( 'form' );
                }
                $form .= '<hr />';
 
index 83ffed9..a4de98a 100644 (file)
@@ -211,14 +211,17 @@ abstract class UploadBase {
         * @return stringthe real path if it was a virtual URL
         */
        function getRealPath( $srcPath ) {
+               wfProfileIn( __METHOD__ );
                $repo = RepoGroup::singleton()->getLocalRepo();
                if ( $repo->isVirtualUrl( $srcPath ) ) {
                        // @TODO: just make uploads work with storage paths
                        // UploadFromStash loads files via virtuals URLs
                        $tmpFile = $repo->getLocalCopy( $srcPath );
                        $tmpFile->bind( $this ); // keep alive with $thumb
+                       wfProfileOut( __METHOD__ );
                        return $tmpFile->getPath();
                }
+               wfProfileOut( __METHOD__ );
                return $srcPath;
        }
 
@@ -227,10 +230,13 @@ abstract class UploadBase {
         * @return mixed self::OK or else an array with error information
         */
        public function verifyUpload() {
+               wfProfileIn( __METHOD__ );
+
                /**
                 * If there was no filename or a zero size given, give up quick.
                 */
                if( $this->isEmptyFile() ) {
+                       wfProfileOut( __METHOD__ );
                        return array( 'status' => self::EMPTY_FILE );
                }
 
@@ -239,6 +245,7 @@ abstract class UploadBase {
                 */
                $maxSize = self::getMaxUploadSize( $this->getSourceType() );
                if( $this->mFileSize > $maxSize ) {
+                       wfProfileOut( __METHOD__ );
                        return array(
                                'status' => self::FILE_TOO_LARGE,
                                'max' => $maxSize,
@@ -252,6 +259,7 @@ abstract class UploadBase {
                 */
                $verification = $this->verifyFile();
                if( $verification !== true ) {
+                       wfProfileOut( __METHOD__ );
                        return array(
                                'status' => self::VERIFICATION_ERROR,
                                'details' => $verification
@@ -263,15 +271,19 @@ abstract class UploadBase {
                 */
                $result = $this->validateName();
                if( $result !== true ) {
+                       wfProfileOut( __METHOD__ );
                        return $result;
                }
 
                $error = '';
                if( !wfRunHooks( 'UploadVerification',
-                               array( $this->mDestName, $this->mTempPath, &$error ) ) ) {
+                       array( $this->mDestName, $this->mTempPath, &$error ) ) )
+               {
+                       wfProfileOut( __METHOD__ );
                        return array( 'status' => self::HOOK_ABORTED, 'error' => $error );
                }
 
+               wfProfileOut( __METHOD__ );
                return array( 'status' => self::OK );
        }
 
@@ -309,15 +321,18 @@ abstract class UploadBase {
         */
        protected function verifyMimeType( $mime ) {
                global $wgVerifyMimeType;
+               wfProfileIn( __METHOD__ );
                if ( $wgVerifyMimeType ) {
                        wfDebug ( "\n\nmime: <$mime> extension: <{$this->mFinalExtension}>\n\n");
                        global $wgMimeTypeBlacklist;
                        if ( $this->checkFileExtension( $mime, $wgMimeTypeBlacklist ) ) {
+                               wfProfileOut( __METHOD__ );
                                return array( 'filetype-badmime', $mime );
                        }
 
                        # XXX: Missing extension will be caught by validateName() via getTitle()
                        if ( $this->mFinalExtension != '' && !$this->verifyExtension( $mime, $this->mFinalExtension ) ) {
+                               wfProfileOut( __METHOD__ );
                                return array( 'filetype-mime-mismatch', $this->mFinalExtension, $mime );
                        }
 
@@ -331,11 +346,13 @@ abstract class UploadBase {
                        $ieTypes = $magic->getIEMimeTypes( $this->mTempPath, $chunk, $extMime );
                        foreach ( $ieTypes as $ieType ) {
                                if ( $this->checkFileExtension( $ieType, $wgMimeTypeBlacklist ) ) {
+                                       wfProfileOut( __METHOD__ );
                                        return array( 'filetype-bad-ie-mime', $ieType );
                                }
                        }
                }
 
+               wfProfileOut( __METHOD__ );
                return true;
        }
 
@@ -346,6 +363,8 @@ abstract class UploadBase {
         */
        protected function verifyFile() {
                global $wgAllowJavaUploads, $wgDisableUploadScriptChecks;
+               wfProfileIn( __METHOD__ );
+
                # get the title, even though we are doing nothing with it, because
                # we need to populate mFinalExtension
                $this->getTitle();
@@ -356,16 +375,19 @@ abstract class UploadBase {
                $mime = $this->mFileProps[ 'file-mime' ];
                $status = $this->verifyMimeType( $mime );
                if ( $status !== true ) {
+                       wfProfileOut( __METHOD__ );
                        return $status;
                }
 
                # check for htmlish code and javascript
                if ( !$wgDisableUploadScriptChecks ) {
                        if( self::detectScript( $this->mTempPath, $mime, $this->mFinalExtension ) ) {
+                               wfProfileOut( __METHOD__ );
                                return array( 'uploadscripted' );
                        }
                        if( $this->mFinalExtension == 'svg' || $mime == 'image/svg+xml' ) {
                                if( $this->detectScriptInSvg( $this->mTempPath ) ) {
+                                       wfProfileOut( __METHOD__ );
                                        return array( 'uploadscripted' );
                                }
                        }
@@ -381,10 +403,12 @@ abstract class UploadBase {
                                $errors = $zipStatus->getErrorsArray();
                                $error = reset( $errors );
                                if ( $error[0] !== 'zip-wrong-format' ) {
+                                       wfProfileOut( __METHOD__ );
                                        return $error;
                                }
                        }
                        if ( $this->mJavaDetected ) {
+                               wfProfileOut( __METHOD__ );
                                return array( 'uploadjava' );
                        }
                }
@@ -392,6 +416,7 @@ abstract class UploadBase {
                # Scan the uploaded file for viruses
                $virus = $this->detectVirus( $this->mTempPath );
                if ( $virus ) {
+                       wfProfileOut( __METHOD__ );
                        return array( 'uploadvirus', $virus );
                }
 
@@ -400,16 +425,19 @@ abstract class UploadBase {
                        $handlerStatus = $handler->verifyUpload( $this->mTempPath );
                        if ( !$handlerStatus->isOK() ) {
                                $errors = $handlerStatus->getErrorsArray();
+                               wfProfileOut( __METHOD__ );
                                return reset( $errors );
                        }
                }
 
                wfRunHooks( 'UploadVerifyFile', array( $this, $mime, &$status ) );
                if ( $status !== true ) {
+                       wfProfileOut( __METHOD__ );
                        return $status;
                }
 
                wfDebug( __METHOD__ . ": all clear; passing.\n" );
+               wfProfileOut( __METHOD__ );
                return true;
        }
 
@@ -495,6 +523,7 @@ abstract class UploadBase {
         */
        public function checkWarnings() {
                global $wgLang;
+               wfProfileIn( __METHOD__ );
 
                $warnings = array();
 
@@ -555,6 +584,7 @@ abstract class UploadBase {
                        $warnings['duplicate-archive'] = $archivedImage->getName();
                }
 
+               wfProfileOut( __METHOD__ );
                return $warnings;
        }
 
@@ -567,6 +597,8 @@ abstract class UploadBase {
         * @return Status indicating the whether the upload succeeded.
         */
        public function performUpload( $comment, $pageText, $watch, $user ) {
+               wfProfileIn( __METHOD__ );
+
                $status = $this->getLocalFile()->upload(
                        $this->mTempPath,
                        $comment,
@@ -581,10 +613,10 @@ abstract class UploadBase {
                        if ( $watch ) {
                                $user->addWatch( $this->getLocalFile()->getTitle() );
                        }
-
                        wfRunHooks( 'UploadComplete', array( &$this ) );
                }
 
+               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -727,9 +759,13 @@ abstract class UploadBase {
         */
        public function stashFile() {
                // was stashSessionFile
+               wfProfileIn( __METHOD__ );
+
                $stash = RepoGroup::singleton()->getLocalRepo()->getUploadStash();
                $file = $stash->stashFile( $this->mTempPath, $this->getSourceType() );
                $this->mLocalFile = $file;
+
+               wfProfileOut( __METHOD__ );
                return $file;
        }
 
@@ -855,6 +891,7 @@ abstract class UploadBase {
         */
        public static function detectScript( $file, $mime, $extension ) {
                global $wgAllowTitlesInSVG;
+               wfProfileIn( __METHOD__ );
 
                # ugly hack: for text files, always look at the entire file.
                # For binary field, just check the first K.
@@ -870,6 +907,7 @@ abstract class UploadBase {
                $chunk = strtolower( $chunk );
 
                if( !$chunk ) {
+                       wfProfileOut( __METHOD__ );
                        return false;
                }
 
@@ -893,6 +931,7 @@ abstract class UploadBase {
 
                # check for HTML doctype
                if ( preg_match( "/<!DOCTYPE *X?HTML/i", $chunk ) ) {
+                       wfProfileOut( __METHOD__ );
                        return true;
                }
 
@@ -929,6 +968,7 @@ abstract class UploadBase {
                foreach( $tags as $tag ) {
                        if( false !== strpos( $chunk, $tag ) ) {
                                wfDebug( __METHOD__ . ": found something that may make it be mistaken for html: $tag\n" );
+                               wfProfileOut( __METHOD__ );
                                return true;
                        }
                }
@@ -943,22 +983,26 @@ abstract class UploadBase {
                # look for script-types
                if( preg_match( '!type\s*=\s*[\'"]?\s*(?:\w*/)?(?:ecma|java)!sim', $chunk ) ) {
                        wfDebug( __METHOD__ . ": found script types\n" );
+                       wfProfileOut( __METHOD__ );
                        return true;
                }
 
                # look for html-style script-urls
                if( preg_match( '!(?:href|src|data)\s*=\s*[\'"]?\s*(?:ecma|java)script:!sim', $chunk ) ) {
                        wfDebug( __METHOD__ . ": found html-style script urls\n" );
+                       wfProfileOut( __METHOD__ );
                        return true;
                }
 
                # look for css-style script-urls
                if( preg_match( '!url\s*\(\s*[\'"]?\s*(?:ecma|java)script:!sim', $chunk ) ) {
                        wfDebug( __METHOD__ . ": found css-style script urls\n" );
+                       wfProfileOut( __METHOD__ );
                        return true;
                }
 
                wfDebug( __METHOD__ . ": no scripts found\n" );
+               wfProfileOut( __METHOD__ );
                return false;
        }
 
@@ -1040,7 +1084,7 @@ abstract class UploadBase {
                        }
 
 
-                       # use handler attribute with remote / data / script 
+                       # use handler attribute with remote / data / script
                        if( $stripped == 'handler' &&  preg_match( '!(http|https|data|script):!sim', $value ) ) {
                                wfDebug( __METHOD__ . ": Found svg setting handler with remote/data/script '$attrib'='$value' in uploaded file.\n" );
                                return true;
@@ -1086,9 +1130,11 @@ abstract class UploadBase {
         */
        public static function detectVirus( $file ) {
                global $wgAntivirus, $wgAntivirusSetup, $wgAntivirusRequired, $wgOut;
+               wfProfileIn( __METHOD__ );
 
                if ( !$wgAntivirus ) {
                        wfDebug( __METHOD__ . ": virus scanner disabled\n" );
+                       wfProfileOut( __METHOD__ );
                        return null;
                }
 
@@ -1096,6 +1142,7 @@ abstract class UploadBase {
                        wfDebug( __METHOD__ . ": unknown virus scanner: $wgAntivirus\n" );
                        $wgOut->wrapWikiMsg( "<div class=\"error\">\n$1\n</div>",
                                array( 'virus-badscanner', $wgAntivirus ) );
+                       wfProfileOut( __METHOD__ );
                        return wfMsg( 'virus-unknownscanner' ) . " $wgAntivirus";
                }
 
@@ -1138,17 +1185,21 @@ abstract class UploadBase {
                        wfDebug( __METHOD__ . ": failed to scan $file (code $exitCode).\n" );
 
                        if ( $wgAntivirusRequired ) {
+                               wfProfileOut( __METHOD__ );
                                return wfMsg( 'virus-scanfailed', array( $exitCode ) );
                        } else {
+                               wfProfileOut( __METHOD__ );
                                return null;
                        }
                } elseif ( $mappedCode === AV_SCAN_ABORTED ) {
                        # scan failed because filetype is unknown (probably imune)
                        wfDebug( __METHOD__ . ": unsupported file type $file (code $exitCode).\n" );
+                       wfProfileOut( __METHOD__ );
                        return null;
                } elseif ( $mappedCode === AV_NO_VIRUS ) {
                        # no virus found
                        wfDebug( __METHOD__ . ": file passed virus scan.\n" );
+                       wfProfileOut( __METHOD__ );
                        return false;
                } else {
                        $output = trim( $output );
@@ -1165,6 +1216,7 @@ abstract class UploadBase {
                        }
 
                        wfDebug( __METHOD__ . ": FOUND VIRUS! scanner feedback: $output \n" );
+                       wfProfileOut( __METHOD__ );
                        return $output;
                }
        }
diff --git a/includes/zhtable/.gitignore b/includes/zhtable/.gitignore
new file mode 100644 (file)
index 0000000..c4cf2eb
--- /dev/null
@@ -0,0 +1,3 @@
+*.zip
+*.tar.gz
+*.tgz
old mode 100644 (file)
new mode 100755 (executable)
index 305422b..2bb53ab
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 # @author Philip
 import tarfile as tf
@@ -39,7 +39,7 @@ LIBTABE_VER = '0.2.3'
 
 def download( url, dest ):
     if os.path.isfile( dest ):
-        print( 'File %s up to date.' % dest )
+        print( 'File %s is up to date.' % dest )
         return
     global islinux
     if islinux:
@@ -372,13 +372,13 @@ $zh2Hant = array(\n'''
         +  PHPArray( toSG ) \
         +  '\n);'
     
-    f = open( 'ZhConversion.php', 'wb', encoding = 'utf8' )
+    f = open( os.path.join( '..', 'ZhConversion.php' ), 'wb', encoding = 'utf8' )
     print ('Writing ZhConversion.php ... ')
     f.write( php )
     f.close()
     
-    #Remove temp files
-    print ('Deleting temp files ... ')
+    # Remove temporary files
+    print ('Deleting temporary files ... ')
     os.remove('EZ-Big.txt.in')
     os.remove('phrase_lib.txt')
     os.remove('tsi.src')
index a738b06..2c3dc07 100644 (file)
@@ -1 +1,24 @@
-<?php require './index.php';
+<?php
+/**
+ * Version of index.php to used in web server requiring .php5 extension
+ * to execute scripts with PHP5 egine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+require './index.php';
index 07445b7..fdea3d8 100644 (file)
@@ -245,6 +245,17 @@ class Language {
         * @return bool
         */
        public static function isValidBuiltInCode( $code ) {
+
+               if( !is_string($code) ) {
+                       $type = gettype( $code );
+                       if( $type === 'object' ) {
+                               $addmsg = " of class " . get_class( $code );
+                       } else {
+                               $addmsg = '';
+                       }
+                       throw new MWException( __METHOD__ . " must be passed a string, $type given$addmsg" );
+               }
+
                return preg_match( '/^[a-z0-9-]+$/i', $code );
        }
 
@@ -710,9 +721,9 @@ class Language {
         *              Use null for autonyms (native names)
         * @param $include string:
         *              'all' all available languages
-        *              'mw' only if the language is defined in MediaWiki or wgExtraLanguageNames
+        *              'mw' only if the language is defined in MediaWiki or wgExtraLanguageNames (default)
         *              'mwfile' only if the language is in 'mw' *and* has a message file
-        * @return array|bool: language code => language name, false if $include is wrong
+        * @return array: language code => language name
         * @since 1.20
         */
        public static function fetchLanguageNames( $inLanguage = null, $include = 'mw' ) {
@@ -750,9 +761,7 @@ class Language {
                        $returnMw[$coreCode] = $names[$coreCode];
                }
 
-               if( $include === 'mw' ) {
-                       return $returnMw;
-               } elseif( $include === 'mwfile' ) {
+               if( $include === 'mwfile' ) {
                        $namesMwFile = array();
                        # We do this using a foreach over the codes instead of a directory
                        # loop so that messages files in extensions will work correctly.
@@ -763,7 +772,8 @@ class Language {
                        }
                        return $namesMwFile;
                }
-               return false;
+               # 'mw' option; default if it's not one of the other two options (all/mwfile)
+               return $returnMw;
        }
 
        /**
@@ -2718,12 +2728,26 @@ class Language {
        }
 
        /**
-        * An arrow, depending on the language direction
+        * An arrow, depending on the language direction.
         *
+        * @param $direction String: the direction of the arrow: forwards (default), backwards, left, right, up, down.
         * @return string
         */
-       function getArrow() {
-               return $this->isRTL() ? '←' : '→';
+       function getArrow( $direction = 'forwards' ) {
+               switch ( $direction ) {
+               case 'forwards':
+                       return $this->isRTL() ? '←' : '→';
+               case 'backwards':
+                       return $this->isRTL() ? '→' : '←';
+               case 'left':
+                       return '←';
+               case 'right':
+                       return '→';
+               case 'up':
+                       return '↑';
+               case 'down':
+                       return '↓';
+               }
        }
 
        /**
index a3140b2..7867447 100644 (file)
@@ -44,7 +44,7 @@
        'bm' => 'Bamanankan',   # Bambara
        'bn' => 'বাংলা',      # Bengali
        'bo' => 'བོད་ཡིག',        # Tibetan
-       'bpy' => 'à¦\87মার à¦ à¦¾à¦°/বিষà§\8dণà§\81পà§\8dরিয়া à¦®à¦£à¦¿à¦ªà§\81রà§\80',        # Bishnupriya Manipuri
+       'bpy' => 'বিষà§\8dণà§\81পà§\8dরিয়া à¦®à¦£à¦¿à¦ªà§\81রà§\80',       # Bishnupriya Manipuri
        'bqi' => 'بختياري',      # Bakthiari
        'br' => 'Brezhoneg',    # Breton
        'brh' => 'Bráhuí',    # Brahui
@@ -96,6 +96,7 @@
        'fa' => 'فارسی',   # Persian
        'ff' => 'Fulfulde',             # Fulfulde, Maasina
        'fi' => 'Suomi',                # Finnish
+       'fit' => 'Meänkieli', # Tornedalen Finnish
        'fiu-vro' => 'Võro',    # Võro (deprecated code, 'vro' in ISO 639-3 since 2009-01-16)
        'fj' => 'Na Vosa Vakaviti',     # Fijian
        'fo' => 'Føroyskt',    # Faroese
        'ga' => 'Gaeilge',              # Irish
        'gag' => 'Gagauz',              # Gagauz
        'gan' => '贛語',              # Gan (multiple scripts - defaults to Traditional)
-       'gan-hans' => "\xE2\x80\xAA赣语(简体)\xE2\x80\xAC", # Gan (Simplified Han)
-       'gan-hant' => "\xE2\x80\xAA贛語(繁體)\xE2\x80\xAC", # Gan (Traditional Han)
+       'gan-hans' => "\xE2\x80\xAA赣语(简体)\xE2\x80\xAC",     # Gan (Simplified Han)
+       'gan-hant' => "\xE2\x80\xAA贛語(繁體)\xE2\x80\xAC",     # Gan (Traditional Han)
        'gd' => 'Gàidhlig',    # Scots Gaelic
        'gl' => 'Galego',               # Galician
        'glk' => 'گیلکی',  # Gilaki
        'zea' => 'Zeêuws',     # Zeeuws/Zeaws
        'zh' => '中文',                                               # (Zhōng Wén) - Chinese
        'zh-classical' => '文言',                     # Classical Chinese/Literary Chinese -- (see bug 8217)
-       'zh-cn' => "\xE2\x80\xAA中文(中国大陆)\xE2\x80\xAC",      # Chinese (PRC)
-       'zh-hans' => "\xE2\x80\xAA中文(简体)\xE2\x80\xAC",  # Mandarin Chinese (Simplified Chinese script) (cmn-hans)
-       'zh-hant' => "\xE2\x80\xAA中文(繁體)\xE2\x80\xAC",  # Mandarin Chinese (Traditional Chinese script) (cmn-hant)
-       'zh-hk' => "\xE2\x80\xAA中文(香港)\xE2\x80\xAC",    # Chinese (Hong Kong)
+       'zh-cn' => "\xE2\x80\xAA中文(中国大陆)\xE2\x80\xAC",  # Chinese (PRC)
+       'zh-hans' => "\xE2\x80\xAA中文(简体)\xE2\x80\xAC",      # Mandarin Chinese (Simplified Chinese script) (cmn-hans)
+       'zh-hant' => "\xE2\x80\xAA中文(繁體)\xE2\x80\xAC",      # Mandarin Chinese (Traditional Chinese script) (cmn-hant)
+       'zh-hk' => "\xE2\x80\xAA中文(香港)\xE2\x80\xAC",        # Chinese (Hong Kong)
        'zh-min-nan' => 'Bân-lâm-gú',                                # Min-nan -- (see bug 8217)
-       'zh-mo' => "\xE2\x80\xAA中文(澳門)\xE2\x80\xAC",    # Chinese (Macau)
-       'zh-my' => "\xE2\x80\xAA中文(马来西亚)\xE2\x80\xAC",      # Chinese (Malaysia)
-       'zh-sg' => "\xE2\x80\xAA中文(新加坡)\xE2\x80\xAC", # Chinese (Singapore)
-       'zh-tw' => "\xE2\x80\xAA中文(台灣)\xE2\x80\xAC",    # Chinese (Taiwan)
+       'zh-mo' => "\xE2\x80\xAA中文(澳門)\xE2\x80\xAC",        # Chinese (Macau)
+       'zh-my' => "\xE2\x80\xAA中文(马来西亚)\xE2\x80\xAC",  # Chinese (Malaysia)
+       'zh-sg' => "\xE2\x80\xAA中文(新加坡)\xE2\x80\xAC",     # Chinese (Singapore)
+       'zh-tw' => "\xE2\x80\xAA中文(台灣)\xE2\x80\xAC",        # Chinese (Taiwan)
        'zh-yue' => '粵語',                                   # Cantonese -- (see bug 8217)
        'zu' => 'isiZulu'               # Zulu
 );
index 6cb091e..1643661 100644 (file)
@@ -481,7 +481,7 @@ $1',
 'nchanges' => '{{PLURAL:$1|لا تغييرات|تغيير واحد|تغييران|$1 تغييرات|$1 تغييرا|$1 تغيير}}',
 'recentchanges' => 'أحدث التغييرات',
 'recentchanges-legend' => 'خيارات أحدث التغييرات',
-'recentchangestext' => 'تابع أحدث التغييرات للويكي عبر هذه التلقيمة.',
+'recentchanges-summary' => 'تابع أحدث التغييرات للويكي عبر هذه التلقيمة.',
 'recentchanges-feed-description' => 'تابع أحدث التغييرات للويكي عبر هذه التلقيمة.',
 'recentchanges-label-newpage' => 'أنشأ هذا التعديل صفحة جديدة',
 'recentchanges-label-minor' => 'هذا تعديل طفيف',
index d821a3b..321c06a 100644 (file)
@@ -594,6 +594,8 @@ Probeer asseblief weer oor 'n paar minute.",
 'ns-specialprotected' => 'Spesiale bladsye kan nie geredigeer word nie.',
 'titleprotected' => "Hierdie titel is beskerm teen skepping deur [[User:$1|$1]].
 Die rede gegee is ''$2''.",
+'invalidtitle-knownnamespace' => 'Ongeldige titel met naamruimte "$2" en teks "$3"',
+'invalidtitle-unknownnamespace' => 'Ongeldige titel met onbekende naamruimtenummer $1 en teks "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Slegte konfigurasie: onbekende virusskandeerder: ''$1''",
@@ -682,6 +684,7 @@ Om misbruik te voorkom, word slegs een wagwoordwenk per {{PLURAL:$1|uur|$1 ure}}
 'invalidemailaddress' => "Die e-posadres is nie aanvaar nie, aangesien dit 'n ongeldige formaat blyk te hê.
 Voer asseblief 'n geldige e-posadres in, of laat die veld leeg.",
 'cannotchangeemail' => "Die e-posadres vir 'n gebruiker kan nie op hierdie wiki gewysig word nie.",
+'emaildisabled' => 'Hierdie webwerf kan nie e-poste stuur nie.',
 'accountcreated' => 'Rekening geskep',
 'accountcreatedtext' => 'Die rekening vir gebruiker $1 is geskep.',
 'createaccount-title' => 'Rekeningskepping vir {{SITENAME}}',
@@ -1150,6 +1153,8 @@ Let op dat die gebruik van navigasieskakels hierdie kolom se waardes sal herstel
 
 # Diffs
 'history-title' => 'Weergawegeskiedenis van "$1"',
+'difference-title' => '$1: verskil tussen weergawes',
+'difference-title-multipage' => '$1 en $2: verskil tussen bladsye',
 'difference-multipage' => '(Verskil tussen bladsye)',
 'lineno' => 'Lyn $1:',
 'compareselectedversions' => 'Vergelyk gekose weergawes',
@@ -1246,6 +1251,7 @@ U kan ook 'n naamruimte as voorvoegsel gebruik.",
 'prefs-beta' => 'Beta-funksies',
 'prefs-datetime' => 'Datum en tyd',
 'prefs-labs' => 'Labs-funksies',
+'prefs-user-pages' => 'Gebruikersbladsye',
 'prefs-personal' => 'Gebruikersdata',
 'prefs-rc' => 'Onlangse wysigings',
 'prefs-watchlist' => 'Dophoulys',
@@ -1509,7 +1515,7 @@ Die inligting is vir ander gebruikers sigbaar.',
 'nchanges' => '$1 {{PLURAL:$1|wysiging|wysigings}}',
 'recentchanges' => 'Onlangse wysigings',
 'recentchanges-legend' => 'Opsies vir onlangse wysigings',
-'recentchangestext' => 'Volg die mees onlangse wysigings aan die wiki op die bladsy.',
+'recentchanges-summary' => 'Volg die mees onlangse wysigings aan die wiki op die bladsy.',
 'recentchanges-feed-description' => 'Spoor die mees onlangse wysigings op die wiki na in die voer.',
 'recentchanges-label-newpage' => "Met die wysiging is 'n nuwe bladsy geskep",
 'recentchanges-label-minor' => "Hierdie is 'n klein wysiging",
@@ -1716,7 +1722,7 @@ As daar steeds probleme is, kontak 'n [[Special:ListUsers/sysop|administrateur]]
 'backend-fail-writetemp' => 'Kon nie na tydelike lêer skryf nie.',
 'backend-fail-closetemp' => 'Kon nie tydelike lêer sluit nie.',
 'backend-fail-read' => 'Kon nie lêer $1 lees nie.',
-'backend-fail-create' => 'Kon nie lêer $1 skep nie.',
+'backend-fail-create' => 'Kon nie lêer $1 uitskryf nie.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => "'n Fout het voorgekom met die opening van die lêer vir ZIP toetsing.",
@@ -2794,7 +2800,7 @@ Die lêer is slegs gedeeltelik opgelaai.',
 
 # JavaScriptTest
 'javascripttest' => 'JavaScript toetsing',
-'javascripttest-disabled' => 'Die funksie is gedeaktiveer.',
+'javascripttest-disabled' => 'Die funksie is nie op hierdie wiki geaktiveer nie.',
 'javascripttest-title' => 'Voer toetse uit vir $1',
 
 # Tooltip help for the actions
@@ -3597,6 +3603,9 @@ Saam met die program moes u \'n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van van
 'version-software' => 'Geïnstalleerde sagteware',
 'version-software-product' => 'Produk',
 'version-software-version' => 'Weergawe',
+'version-entrypoints' => "URL's vir ingange",
+'version-entrypoints-header-entrypoint' => 'Ingang',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Lêerpad',
@@ -3780,4 +3789,15 @@ Beelde word in hulle volle resolusie gewys. Ander lêertipes word direk met hull
 'api-error-uploaddisabled' => 'Oplaai is afgeskakel op hierdie wiki.',
 'api-error-verification-error' => 'Hierdie lêer kan beskadig of het die verkeerde uitbreiding.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|sekonde|sekondes}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minuut|minute}}',
+'duration-hours' => '$1 {{PLURAL:$1|uur|ure}}',
+'duration-days' => '$1 {{PLURAL:$1|dag|dae}}',
+'duration-weeks' => '$1 {{PLURAL:$1|week|weke}}',
+'duration-years' => '$1 {{PLURAL:$1|jaar|jare}}',
+'duration-decades' => '$1 {{PLURAL:$1|dekade|dekades}}',
+'duration-centuries' => '$1 {{PLURAL:$1|eeu|eeue}}',
+'duration-millennia' => '$1 {{PLURAL:$1|millennium|millennia}}',
+
 );
index c46c19f..44d6642 100644 (file)
@@ -1179,7 +1179,7 @@ Mundeni me zgjedhe që të tjerët me ju kontaktue përmjet faqe së diskutimit
 'nchanges' => '$1 {{PLURAL:$1|ndryshim|ndryshime}}',
 'recentchanges' => 'Ndryshimet e fundit',
 'recentchanges-legend' => 'Opcionet e ndryshimeve të reja',
-'recentchangestext' => 'Ndiqni ndryshime së fundmi tek kjo faqe.',
+'recentchanges-summary' => 'Ndiqni ndryshime së fundmi tek kjo faqe.',
 'recentchanges-feed-description' => 'Përcjelli ndryshimet mâ të reja të këtij wiki në këtë feed.',
 'recentchanges-label-newpage' => 'Ky redaktim krijoi një faqe të re',
 'rcnote' => "Mâ poshtë {{PLURAL:$1|âsht '''1''' ndryshim|janë '''$1''' ndryshimet e fundit}} në {{PLURAL:$2|ditën|'''$2''' ditët}} e fundit, prej $5, $4.",
index a66a474..2aa5d28 100644 (file)
@@ -944,7 +944,7 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
 'nchanges' => '$1 {{PLURAL:$1|ለውጥ|ለውጦች}}',
 'recentchanges' => 'በቅርብ ጊዜ የተለወጡ',
 'recentchanges-legend' => 'የቅርብ ለውጥ አማራጮች፦',
-'recentchangestext' => 'በዚሁ ገጽ ላይ በቅርብ ጊዜ የወጡ አዳዲስ ለውጦች ለመከታተል ይችላሉ።',
+'recentchanges-summary' => 'በዚሁ ገጽ ላይ በቅርብ ጊዜ የወጡ አዳዲስ ለውጦች ለመከታተል ይችላሉ።',
 'recentchanges-feed-description' => 'በዚህ ዊኪ ላይ በቅርብ ግዜ የተለወጠውን በዚሁ feed መከታተል ይችላሉ',
 'rcnote' => "ከ$5 $4 እ.ኤ.አ. {{PLURAL:$2|ባለፈው 1 ቀን|ባለፉት '''$2''' ቀኖች}} {{PLURAL:$1|የተደረገው '''1''' ለውጥ እታች ይገኛል|የተደረጉት '''$1''' መጨረሻ ለውጦች እታች ይገኛሉ}}።",
 'rcnotefrom' => "ከ'''$2''' ጀምሮ የተቀየሩት ገጾች (እስከ '''$1''' ድረስ) ክዚህ በታች ይታያሉ።",
index cc2df0a..0aeeae0 100644 (file)
@@ -1391,7 +1391,7 @@ Habría de tener menos de $1 {{PLURAL:$1|carácter|carácters}}.',
 'nchanges' => '$1 {{PLURAL:$1|cambeo|cambeos}}',
 'recentchanges' => 'Zaguers cambeos',
 'recentchanges-legend' => 'Opcions sobre a pachina de zaguers cambeos',
-'recentchangestext' => "Siga os cambeos más recients d'a wiki en ista pachina.",
+'recentchanges-summary' => "Siga os cambeos más recients d'a wiki en ista pachina.",
 'recentchanges-feed-description' => "Seguir os cambios más recients d'o wiki en ista fuent de noticias.",
 'recentchanges-label-newpage' => 'Ista edición ha creyau una nueva pachina',
 'recentchanges-label-minor' => 'Ista ye una edición menor',
index 9474765..2f8a089 100644 (file)
@@ -42,6 +42,7 @@
  * @author Ouda
  * @author Oxydo
  * @author Rami.Awad
+ * @author Reedy
  * @author Riadismet
  * @author Samer
  * @author Sami Lab
@@ -847,6 +848,11 @@ $2',
 'ns-specialprotected' => 'الصفحات الخاصة لا يمكن تعديلها.',
 'titleprotected' => "{{GENDER:$1|حمى|حمت}} [[User:$1|$1]] هذا العنوان من الإنشاء.
 السبب المعطى هو ''$2''.",
+'filereadonlyerror' => 'تعذر تعديل الملف "$1" لأن مستودع الملف "$2" في وضع القراءة فقط. 
+
+المدير الذي قام بغلقه قدم التفسير التالي: "$3".',
+'invalidtitle-knownnamespace' => 'عنوان غير صالح في النطاق «$2» مع نص «$3»',
+'invalidtitle-unknownnamespace' => 'عنوان غير صالح ذو نطاق غير معروف رقم $1 ونص «$2»',
 
 # Virus scanner
 'virus-badscanner' => "ضبط سيء: ماسح فيروسات غير معروف: ''$1''",
@@ -896,8 +902,8 @@ $2',
 'nocookieslogin' => 'يستخدم {{SITENAME}} الكوكيز لتسجيل الدخول.
 الكوكيز معطلة لديك.
 من فضلك فعلها ثم حاول مرة أخرى.',
-'nocookiesfornew' => 'لم يتم إنشاء حساب المستخدم ، ونحن لا يستطيع تأكيد مصدره. 
-تأكد من أن ملفات تعريف الارتباط (كوكيز) مفعلة، ثم أعد تحديث الصفحة وحاول مرة أخرى.',
+'nocookiesfornew' => 'لم يتم إنشاء حساب المستخدم، لأننا لم نستطع تأكيد مصدره. 
+تأكد من أن ملفات تعريف الارتباط (الكوكيز) مفعلة عندك، ثم أعد تحميل الصفحة وحاول مرة أخرى.',
 'noname' => 'لم تحدد اسم مستخدم صحيح.',
 'loginsuccesstitle' => 'تم الدخول بشكل صحيح',
 'loginsuccess' => "'''لقد قمت بتسجيل الدخول ل{{SITENAME}} باسم \"\$1\".'''",
@@ -943,6 +949,7 @@ $2',
 'invalidemailaddress' => 'لا يمكن قبول عنوان البريد الإلكتروني حيث تبدو صيغته خاطئة.
 ضع عنوانا مضبوطا أو أفرغ هذا الحقل.',
 'cannotchangeemail' => 'تغيير عنوان البريد الإلكتروني لهذا الحساب غير ممكن على هذا الويكي',
+'emaildisabled' => 'لا يمكن إرسال رسائل البريد الإلكتروني من هذا الموقع.',
 'accountcreated' => 'تم إنشاء الحساب',
 'accountcreatedtext' => 'تم إنشاء الحساب الخاص ب$1.',
 'createaccount-title' => 'إنشاء حساب في {{SITENAME}}',
@@ -1160,7 +1167,7 @@ $2
 هذا يحدث أحيانا عندما تستخدم خدمة بروكسي مجهول معيبة مبنية على الوب.'''",
 'edit_form_incomplete' => "'''بعض أجزاء من نموذج التعديل لم تصل إلى الخادم؛ تأكد من أن تعديلاتك لم تمس وحاول مجددا.'''",
 'editing' => 'تحرير $1',
-'creating' => 'إنشاء $1',
+'creating' => 'إنشاء «$1»',
 'editingsection' => 'تحرير $1 (قسم)',
 'editingcomment' => 'تعديل $1 (قسم جديد)',
 'editconflict' => 'تضارب في التحرير: $1',
@@ -1228,6 +1235,7 @@ $2
 'edit-no-change' => 'تعديلك تم تجاهله، لأنه لم يحدث أي تعديل للنص.',
 'edit-already-exists' => 'لم يمكن إنشاء صفحة جديدة.
 هي موجودة بالفعل.',
+'defaultmessagetext' => 'نص الرسالة الافتراضي',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''تحذير:''' هذه الصفحة تحتوي على استدعاءات دالة محلل كثيرة مكلفة.
@@ -1243,6 +1251,10 @@ $2
 'parser-template-loop-warning' => 'تم كشف حلقة قالب: [[$1]]',
 'parser-template-recursion-depth-warning' => 'تم تجاوز حد عمق فرد القوالب ($1)',
 'language-converter-depth-warning' => 'تم تخطي حد عمق محول اللغة ($1)',
+'node-count-exceeded-category' => 'الصفحات التي حدث فيها تجاوز تعداد العقد',
+'node-count-exceeded-warning' => 'تجاوزت هذه الصفحة تعداد العقد',
+'expansion-depth-exceeded-category' => 'الصفحات التي حدث فيها تجاوز عمق التوسيع',
+'expansion-depth-exceeded-warning' => 'الصفحة تجاوزت عمق التوسيع',
 
 # "Undo" feature
 'undo-success' => 'يمكن استرجاع التعديل.
@@ -1423,7 +1435,9 @@ $1",
 'mergelogpagetext' => 'بالأسفل قائمة بأحدث عمليات الدمج لتاريخ صفحة ما إلى أخرى.',
 
 # Diffs
-'history-title' => 'تاريخ مراجعة "$1"',
+'history-title' => ' «$1»: تاريخ المراجعة',
+'difference-title' => '«$1»: الفرق بين المراجعتين',
+'difference-title-multipage' => '«$1» و«$2»: الفرق بين الصفحتين',
 'difference-multipage' => '(الفرق بين الصفحتين)',
 'lineno' => 'سطر $1:',
 'compareselectedversions' => 'قارن بين النسختين المختارتين',
@@ -1521,6 +1535,7 @@ $1",
 'prefs-beta' => 'مزايا بيتا',
 'prefs-datetime' => 'وقت وتاريخ',
 'prefs-labs' => 'مزايا مختبرية',
+'prefs-user-pages' => 'صفحات المستخدمين',
 'prefs-personal' => 'ملف المستخدم',
 'prefs-rc' => 'أحدث التغييرات',
 'prefs-watchlist' => 'قائمة المراقبة',
@@ -1783,7 +1798,7 @@ $1",
 'nchanges' => '{{PLURAL:$1|لا تغييرات|تغيير واحد|تغييران|$1 تغييرات|$1 تغييرا|$1 تغيير}}',
 'recentchanges' => 'أحدث التغييرات',
 'recentchanges-legend' => 'خيارات أحدث التغييرات',
-'recentchangestext' => 'تابع آخر التغييرات في الويكي من هذه الصفحة.',
+'recentchanges-summary' => 'تابع آخر التغييرات في الويكي من هذه الصفحة.',
 'recentchanges-feed-description' => 'تابع أحدث التغييرات للويكي عبر هذه التلقيمة.',
 'recentchanges-label-newpage' => 'أنشأ هذا التعديل صفحة جديدة',
 'recentchanges-label-minor' => 'هذا تعديل طفيف',
@@ -1809,6 +1824,7 @@ $1",
 'number_of_watching_users_pageview' => '[{{PLURAL:$1|لا مستخدمون يراقبون|مستخدم واحد يراقب|مستخدمان يراقبان|$1 مستخدمين يراقبون|$1 مستخدما يراقب|$1 مستخدم يراقب}}]',
 'rc_categories' => 'حصر لتصنيفات (مفرقة برمز "|")',
 'rc_categories_any' => 'أي',
+'rc-change-size-new' => '$1 {{PLURAL:$1|بايت|بايت}} بعد التغيير',
 'newsectionsummary' => '/* $1 */ قسم جديد',
 'rc-enhanced-expand' => 'عرض التفاصيل (يتطلب جافاسكريبت)',
 'rc-enhanced-hide' => 'أخفِ التفاصيل',
@@ -1893,14 +1909,14 @@ $1",
 'windows-nonascii-filename' => 'هذا ويكي لا يعتمد أسماء الملفات مع الأحرف الخاصة.',
 'fileexists' => "هناك ملف موجود يحمل نفس هذا الاسم الرجاء التأكد من هذا الملف باتباع الوصلة التالية '''<tt>[[:$1]]</tt>''' قبل القيام بتغييره.
 [[$1|thumb]]",
-'filepageexists' => "أنشئت صفحة وصف هذا الملف في '''<tt>[[:$1]]</tt>'''، لكن لا يوجد ملف بهذا الاسم حاليا.
+'filepageexists' => "أنشئت صفحة وصف هذا الملف في '''<tt>[[:$1]]</tt>'''، لكن لا يوجد ملف بهذا الاسم حالياً.
 لن يظهر الملخص الذي تدخله على صفحة الوصف.
-لجعل ملخصك يظهر هناك، ستحتاج إلى تعديله يدويا.
+لجعل ملخصك يظهر هناك، ستحتاج إلى تعديله يدوياً.
 [[$1|thumb]]",
 'fileexists-extension' => "يوجد ملف باسم مشابه: [[$2|thumb]]
 * اسم الملف المراد رفعه: '''<tt>[[:$1]]</tt>'''
 * اسم الملف الموجود: '''<tt>[[:$2]]</tt>'''
-من فضلك اختر اسما مختلفا.",
+من فضلك اختر اسماً مختلفاً.",
 'fileexists-thumbnail-yes' => "يبدو أن الملف مصغرا لحجم أعلى ''(تصغير)''. [[$1|thumb]]
 من فضلك افحص الملف '''<tt>[[:$1]]</tt>'''.
 إن كان هو نفس الملف بالحجم الأصلي فلا داعي لرفع تصغير إضافي.",
@@ -1908,9 +1924,9 @@ $1",
 يبدو أن الملف مصغرا لحجم أعلى ''(تصغير)''.
 إذا كانت لديك الصورة في درجة دقة كاملة قم برفعها، أو قم بتغيير اسم الملف من فضلك.",
 'fileexists-forbidden' => 'هناك ملف موجود بهذا الاسم بالفعل، ولا يمكن إعادة الكتابة عليه.
-لو أنك مازلت تريد رفع ملفك، من فضلك عد واستخدم اسما جديدا. [[File:$1|thumb|center|$1]]',
+لو أنك مازلت تريد رفع ملفك، من فضلك عد واستخدم اسماً جديداً. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'يوجد ملف بنفس الاسم بالفعل في مستودع الملفات المشترك.
-لو كنت مازلت تريد رفع ملفك، من فضلك ارجع واستخدم اسما جديدا.
+لو كنت مازلت تريد رفع ملفك، من فضلك ارجع واستخدم اسماً جديداً.
 [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'هذا الملف مكرر  {{PLURAL:$1|للملف|للملفات}} التالية:',
 'file-deleted-duplicate' => 'ملف مطابق لهذه الملف ([[:$1]]) تم حذفه من قبل. ينبغي أن تتحقق من تاريخ الحذف لهذا الملف قبل المتابعة بإعادة رفعه.',
@@ -1938,8 +1954,8 @@ $1",
 'watchthisupload' => 'راقب هذا الملف',
 'filewasdeleted' => 'تم رفع ثم حذف ملف بهذا الاسم من قبل.
 من الأفضل مراجعة $1 قبل رفعه مرة أخرى.',
-'filename-bad-prefix' => "اسÙ\85 Ø§Ù\84Ù\85Ù\84Ù\81 Ø§Ù\84Ø°Ù\8a ØªØ±Ù\81عÙ\87 Ù\8aبدأ Ø¨'''\"\$1\"'''Ø\8c Ù\88Ù\87Ù\88 Ø§Ø³Ù\85 ØºÙ\8aر Ù\88صÙ\81Ù\8a Ø¹Ø§Ø¯Ø© Ù\8aÙ\88ضع ØªÙ\84Ù\82ائÙ\8aا Ù\85Ù\86 Ø§Ù\84Ù\83اÙ\85Ù\8aرات Ø§Ù\84رÙ\82Ù\85Ù\8aØ©.
-من فضلك اختر اسما أكثر وصفا لملفك.",
+'filename-bad-prefix' => "اسÙ\85 Ø§Ù\84Ù\85Ù\84Ù\81 Ø§Ù\84Ø°Ù\8a ØªØ±Ù\81عÙ\87 Ù\8aبدأ Ø¨'''\"\$1\"'''Ø\8c Ù\88Ù\87Ù\88 Ø§Ø³Ù\85 ØºÙ\8aر Ù\88صÙ\81Ù\8a ØºØ§Ù\84باÙ\8b Ù\85ا ØªØ®ØµØµÙ\87 Ø§Ù\84Ù\83اÙ\85Ù\8aرات Ø§Ù\84رÙ\82Ù\85Ù\8aØ© ØªÙ\84Ù\82ائÙ\8aاÙ\8b.
+من فضلك اختر اسماً يصف ملفك بوضوح أكثر.",
 'filename-prefix-blacklist' => ' #<!-- اترك هذا السطر تماما كما هو --> <pre>
 # الصيغة كالتالي:
 #   * كل شيء من علامة "#" إلى آخر السطر هو تعليق
@@ -1964,7 +1980,7 @@ $1',
 'upload-warning-msg' => 'ثمة مشكلة في مرفوعك من [$2]. يمكنك الرجوع إلى [[Special:Upload/stash/$1|نموذج الرفع]] لتصحيح المشكلة.',
 
 'upload-proto-error' => 'بروتوكول غير صحيح',
-'upload-proto-error-text' => 'الرفع عن بعد يتطلب مسارا يبدأ بـ <code>http://</code> أو <code>ftp://</code>.',
+'upload-proto-error-text' => 'الرفع عن بعد يتطلب مساراً يبدأ بـ <code>http://</code> أو <code>ftp://</code>.',
 'upload-file-error' => 'خطأ داخلي',
 'upload-file-error-text' => 'حدث خطأ داخلي عند محاولة إنشاء ملف مؤقت على الخادوم.
 من فضلك اتصل [[Special:ListUsers/sysop|بإداري]].',
@@ -1975,13 +1991,15 @@ $1',
 'upload-too-many-redirects' => 'احتوى المسار تحويلات كثيرة جدا',
 'upload-unknown-size' => 'حجم غير معروف',
 'upload-http-error' => 'صودف خطأ HTTP: $1',
+'upload-copy-upload-invalid-domain' => 'رفع النسخ غير متاح من هذا الموقع',
 
 # File backend
 'backend-fail-stream' => 'لا يمكن عرض الملف $1.',
 'backend-fail-backup' => 'لا يمكن صنع نسخة أحتياطية للملف $1.',
 'backend-fail-notexists' => 'الملف $1 غير موجود.',
+'backend-fail-hashes' => 'لم يمكن الحصول على هاش الملف من أجل المقارنة',
 'backend-fail-notsame' => 'يوجد بالفعل ملف غير متطابق في $1.',
-'backend-fail-invalidpath' => '$1 ليس مسارا صالحا للتخزين.',
+'backend-fail-invalidpath' => '$1 ليس مساراً صالحاً للتخزين.',
 'backend-fail-delete' => 'لم يمكن حذف الملف $1.',
 'backend-fail-alreadyexists' => 'الملف $1 موجود بالفعل.',
 'backend-fail-store' => 'لا يمكن تخزين الملف $1 في $2 .',
@@ -1991,7 +2009,19 @@ $1',
 'backend-fail-writetemp' => 'تعذّرت كتابة ملف مؤقت.',
 'backend-fail-closetemp' => 'تعذّر إغلاق ملف مؤقت.',
 'backend-fail-read' => 'لا يمكن قراءة الملف $1.',
-'backend-fail-create' => 'تعذر إنشاء الملف $1.',
+'backend-fail-create' => 'تعذر كتابة الملف $1.',
+'backend-fail-maxsize' => 'تعذر كتابة الملف $1 لأنه أكبر من  {{PLURAL:$2|بايت واحد|$2 بايت}}.',
+'backend-fail-readonly' => 'خلفية التخزين "$1" في وضعية القراءة فقط حاليا. السبب في ذلك هو: "$2"',
+'backend-fail-synced' => 'الملف "$1" في حالة غير متناسقة ضمن خلفية التخزين الداخلية',
+'backend-fail-connect' => 'تعذر ربط الإتصال بخلفية التخزين "$1".',
+'backend-fail-internal' => 'وقع خطأ غير معروف في خلفية التخزين "$1".',
+'backend-fail-contenttype' => 'تعذر تحديد نوع محتوى الملف الذي تريد تخزينه في "$1".',
+'backend-fail-batchsize' => 'أعطت خلفية التخزين دفعة $1 ملف {{PLURAL:$1|عملية|عمليات}}; الحد الأقصى هو $2 {{PLURAL:$2|عملية|عمليات}}.',
+'backend-fail-usable' => 'تعذر كتابة الملف $1 لنقص في التراخيص أو فقدان الدلائل/الحاويات.',
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'تعذر ربط الإتصال بقاعدة بيانات خلفية التخزين "$1".',
+'filejournal-fail-dbquery' => 'تعذر تحديث قاعدة بيانات خلفية تخزين "$1".',
 
 # Lock manager
 'lockmanager-notlocked' => 'تعذر فتح "$1"، الملف غير مغلق.',
@@ -2025,12 +2055,12 @@ $1',
 # img_auth script messages
 'img-auth-accessdenied' => 'رفض الوصول',
 'img-auth-nopathinfo' => 'PATH_INFO مفقود.
-خادÙ\85Ù\83 Ù\84Ù\8aس Ù\85ضبÙ\88طا  لتمرير هذه المعلومة.
-قد يكون مبنيا على نظام CGI ولا يمكنه دعم img_auth.
+خادÙ\88Ù\85Ù\83 Ù\84Ù\8aس Ù\85ضبÙ\88طاÙ\8b لتمرير هذه المعلومة.
+قد يكون مبنياً على نظام CGI ولا يمكنه دعم img_auth.
 راجع https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'img-auth-notindir' => 'المسار المطلوب غير موجود في مجلد الرفع المضبوط.',
 'img-auth-badtitle' => 'تعذر تشكيل عنوان صالح من "$1".',
-'img-auth-nologinnWL' => 'لست والجا و"$1" ليست في القائمة البيضاء.',
+'img-auth-nologinnWL' => 'لست والجاً و"$1" ليست في القائمة البيضاء.',
 'img-auth-nofile' => 'الملف "$1" غير موجود.',
 'img-auth-isdir' => 'أنت تحاول الوصول إلى الدليل "$1".
 يسمح بوصول الملفات فقط.',
@@ -2157,7 +2187,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'بحث MIME',
-'mimesearch-summary' => 'تمكنك هذه الصفحة من ترشيح الملفات طبقا لنوع MIME الخاص بها.
+'mimesearch-summary' => 'تمكنك هذه الصفحة من ترشيح الملفات وفق نوع MIME الخاص بها.
 المدخل: نوع المحتوى/النوع الفرعي، كمثال <tt>image/jpeg</tt>.',
 'mimetype' => 'نوع الملف:',
 'download' => 'تنزيل',
@@ -2311,7 +2341,7 @@ $1',
 'log' => 'سجلات',
 'all-logs-page' => 'كل السجلات العامة',
 'alllogstext' => 'عرض شامل لكل السجلات المتوفرة في {{SITENAME}}.
-باستطاعتك جعل القائمة أكثر تحديدا وذلك باختيار نوع السجل، اسم المستخدم (حساس لحالة الحروف)، أو الصفحة المتأثرة (أيضا حساس لحالة الحروف).',
+باستطاعتك جعل القائمة أكثر تحديداً، وذلك باختيار نوع السجل واسم المستخدم (حساس لحالة الحروف)، أو الصفحة المتأثرة (أيضاً حساس لحالة الحروف).',
 'logempty' => 'لا توجد مدخلات مطابقة في السجل.',
 'log-title-wildcard' => 'ابحث عن عناوين تبدأ بهذا النص',
 
@@ -2320,7 +2350,7 @@ $1',
 'alphaindexline' => '$1 إلى $2',
 'nextpage' => 'الصفحة التالية ($1)',
 'prevpage' => 'الصفحة السابقة ($1)',
-'allpagesfrom' => 'اعرض الصفحات بدءا من:',
+'allpagesfrom' => 'اعرض الصفحات بدءاً من:',
 'allpagesto' => 'اعرض الصفحات المنتهية عند:',
 'allarticles' => 'كل الصفحات',
 'allinnamespace' => 'كل الصفحات (في نطاق $1)',
@@ -2330,18 +2360,23 @@ $1',
 'allpagessubmit' => 'اذهب',
 'allpagesprefix' => 'عرض الصفحات التي تبدأ بـ:',
 'allpagesbadtitle' => 'العنوان المقترح للصفحة غير مقبول أو يضم لغات أخرى أو سابقة إنترويكي.
-يمكن أن يتضمن حروفا لا يمكن استعمالها للعناوين.',
+أو ربما فيه أحرف لا يمكن استعمالها في العناوين.',
 'allpages-bad-ns' => '{{SITENAME}} لا يوجد بها نطاق "$1".',
 'allpages-hide-redirects' => 'أخفِ التحويلات',
 
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'أنت تستعرض نسخة مخبأة من هذه الصفحة، وقدمها قد يصل إلى $1.',
+'cachedspecial-viewing-cached-ts' => 'أنت تستعرض نسخة مخبأة من هذه الصفحة، وقد لا تكون مطابقة للنسخة الحالية.',
+'cachedspecial-refresh-now' => 'استعرض آخر نسخة',
+
 # Special:Categories
 'categories' => 'تصنيفات',
 'categoriespagetext' => '{{PLURAL:$1|التصنيف التالي يحتوي|التصنيفات التالية تحتوي}} على صفحات أو وسائط.
 [[Special:UnusedCategories|التصنيفات غير المستخدمة]] غير معروضة هنا.
£Ù\8aضا Ø§Ù\86ظر [[Special:WantedCategories|التصنيفات المطلوبة]].',
-'categoriesfrom' => 'أظهر التصنيفات بدءا من:',
§Ù\86ظر Ø£Ù\8aضاÙ\8b [[Special:WantedCategories|التصنيفات المطلوبة]].',
+'categoriesfrom' => 'أظهر التصنيفات بدءاً من:',
 'special-categories-sort-count' => 'رتب بالعدد',
-'special-categories-sort-abc' => 'رتب هجائيا',
+'special-categories-sort-abc' => 'رتب هجائياً',
 
 # Special:DeletedContributions
 'deletedcontributions' => 'مساهمات المستخدم المحذوفة',
@@ -2360,19 +2395,19 @@ $1',
 'linksearch-error' => 'الكروت الخاصة يمكن أن تظهر فقط في بداية اسم المضيف.',
 
 # Special:ListUsers
-'listusersfrom' => 'اعرض المستخدمين بدءا من:',
+'listusersfrom' => 'اعرض المستخدمين بدءاً من:',
 'listusers-submit' => 'اعرض',
 'listusers-noresult' => 'لم يتم إيجاد مستخدم.',
 'listusers-blocked' => '(ممنوع)',
 
 # Special:ActiveUsers
 'activeusers' => 'قائمة المستخدمين النشطين',
-'activeusers-intro' => 'هذه قائمة بالمستخدمين الذين مارسوا نوعا من النشاط خلال {{PLURAL:$1||اليوم الماضي|اليومين الماضيين|ال$1 أيام الماضية|ال$1 يوما ماضيا|ال$1 يوم ماضي}}.',
-'activeusers-count' => '{{PLURAL:$1|لا تعديلات حديثة|تعديل حديث واحد|تعديلان حديثان|$1 تعديلات حديثة|$1 تعديلا حديثا|$1 تعديل حديث}} في {{PLURAL:$3||اليوم الماضي|اليومين الماضيين|$3 أيام ماضية|$3 يوما ماضية|ال$1 يوم ماضي}}',
-'activeusers-from' => 'اعرض المستخدمين بدءا من:',
+'activeusers-intro' => 'هذه قائمة بالمستخدمين الذين مارسوا نوعاً من النشاط خلال {{PLURAL:$1||اليوم الماضي|اليومين الماضيين|ال$1 أيام الماضية|ال$1 يوماً ماضياً|ال$1 يوم ماضي}}.',
+'activeusers-count' => '{{PLURAL:$1|لا تعديلات حديثة|تعديل حديث واحد|تعديلان حديثان|$1 تعديلات حديثة|$1 تعديلاً حديثاً|$1 تعديل حديث}} خلال {{PLURAL:$3||اليوم الماضي|اليومين الماضيين|$3 أيام ماضية|$3 يوماً ماضية|ال$1 يوم ماضي}}',
+'activeusers-from' => 'اعرض المستخدمين بدءاً من:',
 'activeusers-hidebots' => 'أخف البوتات',
 'activeusers-hidesysops' => 'أخف الإداريين',
-'activeusers-noresult' => 'لا مستخدمون تم إيجادهم.',
+'activeusers-noresult' => 'لم يعثر على أي مستخدمين',
 
 # Special:Log/newusers
 'newuserlogpage' => 'سجل إنشاء المستخدمين',
@@ -2403,7 +2438,7 @@ $1',
 'emailuser' => 'إرسال رسالة لهذا المستخدم',
 'emailpage' => 'إرسال رسالة للمستخدم',
 'emailpagetext' => 'يمكنك استخدام الاستمارة بالأسفل لإرسال رسالة بريد إلكتروني إلى هذا المستخدم.
¹Ù\86Ù\88اÙ\86 Ø§Ù\84برÙ\8aد Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a Ø§Ù\84Ø°Ù\8a Ù\82Ù\85ت Ø£Ù\86ت Ø¨Ø¥Ø¯Ø®Ø§Ù\84Ù\87 Ù\81Ù\8a [[Special:Preferences|تÙ\81ضÙ\8aÙ\84اتÙ\83]]Ø\8c Ø³Ù\8aظÙ\87ر Ù\83عÙ\86Ù\88اÙ\86 Ø§Ù\84Ù\85رسÙ\84 Ù\81Ù\8a Ø§Ù\84برÙ\8aد Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8aØ\8c Ø­ØªÙ\89 Ù\8aصبح Ø§Ù\84Ù\85تÙ\84Ù\82Ù\8a Ù\82ادرا Ø¹Ù\84Ù\89 الرد عليك مباشرة.',
³Ù\8aظÙ\87ر Ø¹Ù\86Ù\88اÙ\86 Ø§Ù\84برÙ\8aد Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a Ø§Ù\84Ø°Ù\8a Ø£Ø¯Ø®Ù\84تÙ\87 Ù\81Ù\8a [[Special:Preferences|تÙ\81ضÙ\8aÙ\84اتÙ\83]] Ù\83عÙ\86Ù\88اÙ\86 Ø§Ù\84Ù\85رسÙ\84 Ù\81Ù\8a Ø§Ù\84برÙ\8aد Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8aØ\8c Ù\83Ù\8a Ù\8aستطÙ\8aع Ø§Ù\84Ù\85تÙ\84Ù\82Ù\8a الرد عليك مباشرة.',
 'usermailererror' => 'جسم البريد أرجع خطأ:',
 'defemailsubject' => 'رسالة {{SITENAME}} من المستخدم "$1"',
 'usermaildisabled' => 'بريد المستخدم الإلكتروني معطل',
@@ -2439,7 +2474,7 @@ $1',
 'nowatchlist' => 'لا توجد مدخلات في قائمة مراقبتك.',
 'watchlistanontext' => 'الرجاء $1 لعرض أو تعديل الصفحات في قائمة مراقبتك.',
 'watchnologin' => 'غير مسجل',
-'watchnologintext' => 'يجب أن تكون [[Special:UserLogin|مسجلا الدخول]] لتعدل قائمة مراقبتك.',
+'watchnologintext' => 'يجب أن تكون [[Special:UserLogin|مسجل الدخول]] لتعدل قائمة مراقبتك.',
 'addwatch' => 'إضافة إلى قائمة المراقبة',
 'addedwatchtext' => "أضيفت الصفحة  \"[[:\$1]]\" إلى [[Special:Watchlist|قائمة مراقبتك]].
 التغييرات القادمة على هذه الصفحة وصفحة نقاشها سيتم وضعها هناك، وسيتم إظهار اسم الصفحة بخط '''غليظ''' في صفحة [[Special:RecentChanges|أحدث التغييرات]] لتسهيل تحديدها واكتشافها.",
@@ -2459,7 +2494,7 @@ $1',
 'watchmethod-list' => 'فحص الصفحات المراقبة للتعديلات الحديثة',
 'watchlistcontains' => 'تحتوي قائمة مراقبتك على {{PLURAL:$1|لا صفحات|صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}}.',
 'iteminvalidname' => "مشكلة في المدخل '$1'، اسم غير صحيح...",
-'wlnote' => "بالأسفل {{PLURAL:$1|لا توجد تغييرات|التغيير الأخير|آخر تغييرين|آخر '''$1''' تغييرات|آخر '''$1''' تغييرا|آخر '''$1''' تغيير}} في {{PLURAL:$2||'''الساعة''' الماضية|'''الساعتين''' الماضيتين|ال'''$2''' ساعات الماضية|ال'''$2''' ساعة الماضية}} وفقا ل$3، $4.",
+'wlnote' => "بالأسفل {{PLURAL:$1|لا توجد تغييرات|التغيير الأخير|آخر تغييرين|آخر '''$1''' تغييرات|آخر '''$1''' تغييرا|آخر '''$1''' تغيير}} في {{PLURAL:$2||'''الساعة''' الماضية|'''الساعتين''' الماضيتين|ال'''$2''' ساعات الماضية|ال'''$2''' ساعة الماضية}} وفقاً ل$3، $4.",
 'wlshowlast' => 'عرض آخر $1 ساعات $2 أيام $3',
 'watchlist-options' => 'خيارات قائمة المراقبة',
 
@@ -2488,18 +2523,18 @@ $1',
 ويكي: $PAGEEDITOR_WIKI
 
 لن يكون هناك إخطارات أخرى في حالة حدوث مزيد من التغييرات إلا إذا قمت بزيارة تلك الصفحة.
-يمكن أيضا تعيين إشارات الإعلام لجميع صفحات شاهد على هيئة الرصد الخاصة بك.
+يمكنك أيضاً إزالة العلامات عن جميع الصفحات في قائمة مراقبتك.
 
-                        {{SITENAME}} إعلام البريد الإلكتروني لموقع
+                       نظام {{SITENAME}} للإعلام بالبريد الإلكتروني
 
 --
\84تغÙ\8aÙ\8aر Ø¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø¥Ø¹Ù\84اÙ\85 البريد الإلكتروني الخاص بك، قم بزيارة
\84تغÙ\8aÙ\8aر Ø¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§Ù\84إعÙ\84اÙ\85 Ø¨البريد الإلكتروني الخاص بك، قم بزيارة
 {{canonicalurl:{{#special:Preferences}}}}
 
-لتغيير إعدادات المراقبة الخاصة بك، قم بزيارة
+لتغيير إعدادات قائمة مراقبتك، قم بزيارة
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
-لحذف الصفحة من قائمة المراقبة الخاصة بك، قم بزيارة
+لحذف الصفحة من قائمة مراقبتك، قم بزيارة
 $UNWATCHURL
 
 التغذية المرتدة، والحصول على مساعدة إضافية:
@@ -2514,7 +2549,7 @@ $UNWATCHURL
 'exblank' => 'الصفحة كانت فارغة',
 'delete-confirm' => 'حذف "$1"',
 'delete-legend' => 'حذف',
-'historywarning' => "'''تحذير:''' للصفحة التي توشك على حذفها تاريخ فيه تقريبا {{PLURAL:$1||مراجعة واحدة|مراجعتين|$1 مراجعات|$1 مراجعة}}:",
+'historywarning' => "'''تحذير:''' الصفحة التي توشك على حذفها لها تاريخ فيه {{PLURAL:$1||مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}} تقريباً:",
 'confirmdeletetext' => 'أنت على وشك أن تقوم بحذف صفحة بالإضافة إلى كل تاريخها.
 من فضلك التأكد من عزمك على الحذف، وبأنك مدرك للعواقب، وبأنك تقوم بهذا بالتوافق مع [[{{MediaWiki:Policy-url}}|السياسة]].',
 'actioncomplete' => 'انتهاء العملية',
@@ -2672,7 +2707,7 @@ $UNWATCHURL
 'undelete-search-submit' => 'ابحث',
 'undelete-no-results' => 'لم يتم العثور على صفحات مطابقة في أرشيف المحذوفات.',
 'undelete-filename-mismatch' => 'لم يمكن استرجاع مراجعة الملف بتاريخ $1: اسم الملف لا يطابق',
-'undelete-bad-store-key' => 'لم يمكن استرجاع مراجعة الملف بتاريخ $1: الملف كان مفقودا قبل الحذف',
+'undelete-bad-store-key' => 'لم يمكن استرجاع مراجعة الملف بتاريخ $1: الملف كان مفقوداً قبل الحذف',
 'undelete-cleanup-error' => 'خطأ حذف ملف أرشيف غير مستخدم "$1".',
 'undelete-missing-filearchive' => 'غير قادر على استرجاع ملف الأرشيف رقم $1 لأنه ليس في قاعدة البيانات.
 ربما يكون قد تم استرجاعه.',
@@ -2770,7 +2805,7 @@ $1',
 'ipbotherreason' => 'سبب إضافي/آخر:',
 'ipbhidename' => 'أخف اسم المستخدم من التعديلات والقوائم',
 'ipbwatchuser' => 'راقب صفحتي المستخدم والنقاش لهذا المستخدم',
-'ipb-disableusertalk' => 'امنع هذا المستخدم من تعديل صفحة نقاشه ما دام ممنوعا',
+'ipb-disableusertalk' => 'امنع هذا المستخدم من تعديل صفحة نقاشه ما دام ممنوعاً',
 'ipb-change-block' => 'أعد منع المستخدم بهذه الإعدادات',
 'ipb-confirm' => 'أكّد المنع',
 'badipaddress' => 'عنوان أيبي غير صحيح',
@@ -2820,7 +2855,7 @@ $1',
 'change-blocklink' => 'تغيير المنع',
 'contribslink' => 'مساهمات',
 'emaillink' => 'أرسل بريدًا إلكترونيًا',
-'autoblocker' => 'تم منعك تلقائيا لأن الأيبي الخاص بك تم استخدامه مؤخرا بواسطة "[[User:$1|$1]]".
+'autoblocker' => 'تم منعك تلقائيا لأن الأيبي الخاص بك تم استخدامه مؤخراً بواسطة "[[User:$1|$1]]".
 السبب المعطى لمنع $1 هو: "$2"',
 'blocklogpage' => 'سجل المنع',
 'blocklog-showlog' => 'سبق منع هذا المستخدم.
@@ -2844,14 +2879,14 @@ $1',
 'ipb_expiry_invalid' => 'تاريخ الانتهاء غير صحيح.',
 'ipb_expiry_temp' => 'عمليات منع أسماء المستخدمين المخفية يجب أن تكون دائمة.',
 'ipb_hide_invalid' => 'غير قادر على إخفاء هذا الحساب؛ ربما يكون قد قام بالكثير من التعديلات.',
-'ipb_already_blocked' => '"$1" Ù\85Ù\85Ù\86Ù\88ع Ø¨Ø§Ù\84Ù\81عÙ\84',
-'ipb-needreblock' => '$1 Ù\85Ù\85Ù\86Ù\88ع Ø¨Ø§Ù\84Ù\81عÙ\84. هل تريد تغيير الإعدادات؟',
+'ipb_already_blocked' => '"$1" Ù\85Ù\85Ù\86Ù\88ع Ø­Ø§Ù\84Ù\8aاÙ\8b',
+'ipb-needreblock' => '$1 Ù\85Ù\85Ù\86Ù\88ع Ø­Ø§Ù\84Ù\8aاÙ\8b. هل تريد تغيير الإعدادات؟',
 'ipb-otherblocks-header' => '{{PLURAL:$1||المنع الآخر|المنعان الآخران|المنوعات الأخرى}}',
 'unblock-hideuser' => 'لا يمكنك إلغاء منع هذا المستخدم لأن اسم مستخدمه أُخفي.',
 'ipb_cant_unblock' => 'خطأ: لم يتم إيجاد الممنوع $1.
 ربما تم رفع منعه بالفعل.',
-'ipb_blocked_as_range' => 'خطأ: الأيبي $1 ليس ممنوعا مباشرة ولا يمكن رفع المنع عنه.
-لكنه، على أية حال، ممنوع كجزء من النطاق $2، والذي يمكن رفع المنع عنه.',
+'ipb_blocked_as_range' => 'خطأ: الأيبي $1 ليس ممنوعاً مباشرة ولا يمكن رفع المنع عنه.
+لكنه ممنوع كجزء من النطاق $2، والذي يمكن رفع المنع عنه.',
 'ip_range_invalid' => 'نطاق عناوين الأيبي المدخل غير صحيح.',
 'ip_range_toolarge' => 'لا يسمح بنطاقات المنع الأكبر من /$1',
 'blockme' => 'منعي',
@@ -2865,19 +2900,19 @@ $1',
 'sorbs_create_account_reason' => 'عنوان الأيبي الخاص بك موجود كبروكسي مفتوح في DNSBL المستخدم بواسطة {{SITENAME}}.
 لا يمكنك إنشاء حساب.',
 'cant-block-while-blocked' => 'أنت لا يمكنك منع المستخدمين الآخرين بينما أنت ممنوع.',
-'cant-see-hidden-user' => 'المستخدم الذي تحاول منعه تم منعه مسبقا وإخفائه. بما أنك لا تمتلك صلاحية إخفاء المستخدم ، لا يمكنك مشاهدة المنع أو تعديله.',
+'cant-see-hidden-user' => 'المستخدم الذي تحاول منعه تم منعه سابقاً وإخفاؤه. بما أنك لا تمتلك صلاحية إخفاء المستخدم، لا يمكنك مشاهدة المنع أو تعديله.',
 'ipbblocked' => 'لا يمكنك منع أو رفع منع مستخدمين آخرين لأنك ممنوع',
 'ipbnounblockself' => 'لا يسمح لك برفع المنع عن نفسك',
 
 # Developer tools
 'lockdb' => 'قفل قاعدة البيانات',
 'unlockdb' => 'فتح قاعدة البيانات',
-'lockdbtext' => 'إغلاق قاعدة البيانات سوف يمنع جميع المستخدمين من تحرير الصفحات وتغيير التفضيلات الخاصة بهم وتعديل قائمة المراقبة وغير ذلك من الأمور المتطلبة التعديل على قاعدة البيانات.
-من فضلك تأكد من أن هذا حقا ما ترغب القيام به، ومن أنك سوف تقوم بإزالة الغلق بعد الانتهاء من الصيانة.',
+'lockdbtext' => 'إغلاق قاعدة البيانات سوف يمنع جميع المستخدمين من تحرير الصفحات وتغيير التفضيلات الخاصة بهم وتعديل قائمة المراقبة وغير ذلك من الأمور التي تتطلب تعديل قاعدة البيانات.
+من فضلك تأكد من أن هذا حقاً ما ترغب القيام به، ومن أنك سوف تقوم بإزالة الغلق بعد الانتهاء من الصيانة.',
 'unlockdbtext' => 'فتح قاعدة البيانات سيسترجع قدرة كل المستخدمين على تحرير الصفحات، تغيير تفضيلاتهم، تعديل قوائم المراقبة الخاصة بهم، وأشياء أخرى تحتاج التغيير في قاعدة البيانات.
 من فضلك أكد أن هذا هو ما تريده.',
-'lockconfirm' => 'Ù\86عÙ\85Ø\8c Ø£Ø±Ù\8aد Ù\81عÙ\84ا Ù\82Ù\81Ù\84 Ù\82اعدة Ø§Ù\84بÙ\8aاÙ\86ات.',
-'unlockconfirm' => 'Ù\86عÙ\85Ø\8c Ø£Ø±Ù\8aد Ù\81عÙ\84ا Ù\81تح Ù\82اعدة Ø§Ù\84بÙ\8aاÙ\86ات.',
+'lockconfirm' => 'Ù\86عÙ\85Ø\8c Ø£Ø±Ù\8aد Ù\82Ù\81Ù\84 Ù\82اعدة Ø§Ù\84بÙ\8aاÙ\86ات Ù\81عÙ\84اÙ\8b.',
+'unlockconfirm' => 'Ù\86عÙ\85Ø\8c Ø£Ø±Ù\8aد Ù\81تح Ù\82اعدة Ø§Ù\84بÙ\8aاÙ\86ات Ù\81عÙ\84اÙ\8b.',
 'lockbtn' => 'قفل قاعدة البيانات',
 'unlockbtn' => 'رفع غلق قاعدة البيانات',
 'locknoconfirm' => 'لم تقم بتعليم صندوق التأكيد.',
@@ -2887,46 +2922,46 @@ $1',
 تذكر أن [[Special:UnlockDB|تزيل الغلق]] بعد اكتمال أعمال الصيانة.',
 'unlockdbsuccesstext' => 'تم إعادة فتح قاعدة البيانات',
 'lockfilenotwritable' => 'ملف غلق قاعدة البيانات لا يمكن الكتابة عليه.
-لغلق قاعدة البيانات أو إزالة الغلق يجب أن يكون هذا الملف قابلا للكتابة من قبل خادوم الوب.',
+لغلق قاعدة البيانات أو إزالة الغلق يجب أن يكون هذا الملف قابلاً للكتابة من قبل خادوم الويب.',
 'databasenotlocked' => 'قاعدة البيانات ليست مغلقة.',
 'lockedbyandtime' => '(من $1 على $2 في $3 )',
 
 # Move page
 'move-page' => 'نقل $1',
 'move-page-legend' => 'نقل صفحة',
-'movepagetext' => "باستخدام  الاستمارة بالأسفل بإمكانك أن تغير اسم الصفحة، وأن تنقل تاريخها للاسم الجديد.
+'movepagetext' => "باستخدام  الاستمارة بالأسفل بإمكانك أن تغير اسم الصفحة، وأن تنقل تاريخها إلى لاسم الجديد.
 العنوان القديم سيصبح تحويلة للعنوان الجديد.
\8aÙ\85Ù\83Ù\86Ù\83 ØªØ­Ø¯Ù\8aØ« Ø§Ù\84تحÙ\88Ù\8aÙ\84ات Ø§Ù\84تÙ\8a ØªØ´Ù\8aر Ø¥Ù\84Ù\89 Ø§Ù\84عÙ\86Ù\88اÙ\86 Ø§Ù\84أصÙ\84Ù\8a ØªÙ\84Ù\82ائÙ\8aا.
-لو اخترت ألا تفعل، تأكد من عدم وجود تحويلات [[Special:DoubleRedirects|مزدوجة]] أو [[Special:BrokenRedirects|مكسورة]].
-أنت مسؤول عن التأكد من أن الوصلات تتصل مع بعضها بشكل مناسب.
\8aÙ\85Ù\83Ù\86Ù\83 Ø£Ù\86 ØªØªØ±Ù\83 Ø§Ù\84تحÙ\88Ù\8aÙ\84ات Ø§Ù\84تÙ\8a ØªØ´Ù\8aر Ø¥Ù\84Ù\89 Ø§Ù\84عÙ\86Ù\88اÙ\86 Ø§Ù\84أصÙ\84Ù\8a Ù\83Ù\85ا Ù\87Ù\8a Ù\84تÙ\82Ù\88Ù\85 Ø§Ù\84بÙ\88تات Ø¨ØªØ­Ø¯Ù\8aØ«Ù\87ا ØªÙ\84Ù\82ائÙ\8aاÙ\8b.
+إذا اخترت أن تقوم بالتحديث يدوياً، فتأكد من عدم وجود تحويلات [[Special:DoubleRedirects|مزدوجة]] أو [[Special:BrokenRedirects|مكسورة]] وقم بتصحيحها.
+أنت المسؤول عن التأكد من أن الوصلات تصل إلى الصفحات التي يفترض أن تصل إليها.
 
-لاحظ أنه '''لن يتم''' نقل الصفحة إذا وجدت صفحة بالعنوان الجديد، إلا إذا كانت فارغة، أو تحويلة ولا تاريخ لها.
-هذا يعني أنك يمكنك استرجاع الصفحة لمكانها لو قمت بخطأ، وأنك لا يمكنك الكتابة على صفحة موجودة.
+لاحظ أنه '''لن يتم''' نقل الصفحة إذا وجدت صفحة في العنوان الجديد، إلا إذا كانت فارغة أو صفحة تحويل، ولا تاريخ لها.
+هذا يعني أنك تستطيع استرجاع الصفحة إلى مكانها لو قمت بخطأ، وأنك لا يمكنك نسخ هذه الصفحة فوق صفحة موجودة.
 
 '''تحذير!'''
-هذا قد يكون تغييرا كارثيا وغير متوقع لصفحة مشهورة؛
-من فضلك تأكد من فهم عواقب هذا قبل المتابعة.",
-'movepagetext-noredirectfixer' => "باستخدام  الاستمارة بالأسفل بإمكانك أن تغير اسم الصفحة، وأن تنقل تاريخها للاسم الجديد.
+هذا قد يكون تغييراً كارثياً وغير متوقع لصفحة مشهورة؛
+من فضلك تأكد أنك تفهم عواقب هذا الفعل قبل أن تستمر.",
+'movepagetext-noredirectfixer' => "باستخدام  الاستمارة بالأسفل بإمكانك أن تغير اسم الصفحة، وأن تنقل تاريخها إلى الاسم الجديد.
 العنوان القديم سيصبح تحويلة للعنوان الجديد.
-يمكنك تحديث التحويلات التي تشير إلى العنوان الأصلي تلقائيا.
+يمكنك تحديث التحويلات التي تشير إلى العنوان الأصلي تلقائياً.
 لو اخترت ألا تفعل، تأكد من عدم وجود تحويلات [[Special:DoubleRedirects|مزدوجة]] أو [[Special:BrokenRedirects|مكسورة]].
-أنت مسؤول عن التأكد من أن الوصلات تتصل مع بعضها بشكل مناسب.
+أنت المسؤول عن التأكد من أن الوصلات تصل إلى الصفحات التي يفترض أن تصل إليها.
 
\84احظ Ø£Ù\86Ù\87 '''Ù\84Ù\86 Ù\8aتÙ\85''' Ù\86Ù\82Ù\84 Ø§Ù\84صÙ\81حة Ø¥Ø°Ø§ Ù\83اÙ\86 Ù\87Ù\86اÙ\83 ØµÙ\81حة Ø¨Ù\86Ù\81س Ø§Ù\84عÙ\86Ù\88اÙ\86 Ø§Ù\84جدÙ\8aدØ\8c Ø¥Ù\84ا Ø¥Ø°Ø§ Ù\83اÙ\86ت Ù\81ارغةØ\8c Ø£Ù\88 ØªØ­Ù\88Ù\8aÙ\84Ø© Ù\88Ù\84ا ØªØ§Ø±Ù\8aØ® Ù\84Ù\87ا.
-هذا يعني أنك يمكنك استرجاع الصفحة لمكانها لو قمت بخطأ، وأنك لا يمكنك الكتابة على صفحة موجودة.
+لاحظ أنه '''لن يتم''' نقل الصفحة إذا كان هناك صفحة بنفس العنوان الجديد، إلا إذا كانت فارغة، أو تحويلة لا تاريخ لها.
+هذا يعني أنك تستطيع استرجاع الصفحة إلى مكانها لو قمت بخطأ، وأنك لا يمكنك الكتابة على صفحة موجودة.
 
 '''تحذير!'''
-هذا قد يكون تغييرا كارثيا وغير متوقع لصفحة مشهورة؛
-من فضلك تأكد من فهم عواقب هذا قبل المتابعة",
+هذا قد يكون تغييراً كارثياً وغير متوقع لصفحة مشهورة؛
+من فضلك تأكد أنك تفهم عواقب هذا الفعل قبل أن تستمر.",
 'movepagetalktext' => "صفحة النقاش المرفقة سيتم نقلها كذلك، '''إلا في حالة''':
 * توجد صفحة نقاش غير فارغة تحت العنوان الجديد، أو
 * قمت بإزالة اختيار الصندوق بالأسفل.
 
 وفي هذه الحالات، يجب عليك نقل أو دمج محتويات الصفحة يدويا، إذا رغب في ذلك.",
 'movearticle' => 'انقل الصفحة:',
-'moveuserpage-warning' => "'''تحذير: أنت على وشك نقل صفحة مستخدم. من فضلك لاحظ أن الصفحة وحدها سوف تنقل وأن المستخدم <u>لن</u> يعاد تسميته.'''",
+'moveuserpage-warning' => "'''تحذير: أنت على وشك نقل صفحة مستخدم. من فضلك لاحظ أن الصفحة وحدها سوف تنقل وأن المستخدم لن يعاد تسميته.'''",
 'movenologin' => 'غير مسجل',
-'movenologintext' => 'يجب أن تكون مستخدما مسجلا وأن تقوم [[Special:UserLogin|بالدخول]] لكي تنقل صفحة.',
+'movenologintext' => 'يجب أن تكون مستخدماً مسجلاً وأن  [[Special:UserLogin|تسجل دخولك]] لكي تنقل صفحة.',
 'movenotallowed' => 'أنت لا تمتلك الصلاحية لنقل الصفحات.',
 'movenotallowedfile' => 'أنت لا تمتلك الصلاحية لنقل الملفات.',
 'cant-move-user-page' => 'أنت لا تمتلك الصلاحية لنقل صفحات المستخدم الرئيسية.',
@@ -2941,16 +2976,16 @@ $1',
 'articleexists' => 'توجد صفحة بهذا الاسم، أو أن الاسم الذي تم اختياره غير صالح.
 من فضلك اختر اسم آخر.',
 'cantmove-titleprotected' => 'لا يمكنك نقل صفحة إلى هذا الموقع، لأن العنوان الجديد تمت حمايته ضد الإنشاء',
-'talkexists' => "'''الصفحة نفسها تم نقلها بنجاح، ولكن صفحة النقاش لم يمكن نقلها لوجود صفحة مسبقا تحت العنوان الجديد.
-من فضلك ادمجهما يدويا.'''",
+'talkexists' => "'''الصفحة نفسها تم نقلها بنجاح، ولكن صفحة النقاش لم يمكن نقلها لوجود صفحة مسبقاً تحت العنوان الجديد.
+من فضلك ادمجهما يدوياً.'''",
 'movedto' => 'نُقِلت إلى',
 'movetalk' => 'انقل صفحة النقاش المرفقة',
 'move-subpages' => 'انقل الصفحات الفرعية (حتى $1)',
 'move-talk-subpages' => 'انقل الصفحات الفرعية لصفحة النقاش (حتى $1)',
-'movepage-page-exists' => 'الصفحة $1 موجودة بالفعل ولا يمكن الكتابة عليها تلقائيا.',
+'movepage-page-exists' => 'الصفحة $1 موجودة بالفعل ولا يمكن الكتابة عليها تلقائياً.',
 'movepage-page-moved' => 'نُقِلت صفحة $1 إلى $2.',
 'movepage-page-unmoved' => 'لم يمكن نقل صفحة $1 إلى $2.',
-'movepage-max-pages' => 'تم نقل الحد الأقصى وهو {{PLURAL:$1||صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}} ولن يتم نقل المزيد تلقائيا.',
+'movepage-max-pages' => 'تم نقل الحد الأقصى وهو {{PLURAL:$1||صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}} ولن يتم نقل المزيد تلقائياً.',
 'movelogpage' => 'سجل النقل',
 'movelogpagetext' => 'بالأسفل قائمة بالصفحات التي تم نقلها.',
 'movesubpage' => '{{PLURAL:$1||الصفحة الفرعية|الصفحتان الفرعيتان|الصفحات الفرعية}}',
@@ -2968,7 +3003,7 @@ $1',
 لا يمكن نقل الصفحة على نفسها.',
 'immobile-source-namespace' => 'غير قادر على نقل الصفحات في النطاق "$1"',
 'immobile-target-namespace' => 'غير قادر على نقل الصفحات إلى النطاق "$1"',
-'immobile-target-namespace-iw' => 'وصلة الإنترويكي ليست هدفا صحيحا لنقل صفحة.',
+'immobile-target-namespace-iw' => 'وصلة الإنترويكي ليست هدفاً صالحاً لنقل صفحة.',
 'immobile-source-page' => 'هذه الصفحة غير قابلة للنقل.',
 'immobile-target-page' => 'غير قادر على النقل إلى العنوان الوجهة هذا.',
 'imagenocrossnamespace' => 'لا يمكن نقل الملف إلى نطاق غير نطاق الملفات',
@@ -2984,15 +3019,16 @@ $1',
 'move-over-sharedrepo' => '== الملف موجود ==
 [[:$1]] موجود في مستودع مشترك. نقل الملف إلى هذا العنوان سوف يلغي الملف المشترك.',
 'file-exists-sharedrepo' => 'اسم الملف الذي اخترته مستخدم من قبل في مستودع مشترك.
-من فضلك اختر اسما آخرا.',
+من فضلك اختر اسماً آخر.',
 
 # Export
 'export' => 'تصدير صفحات',
-'exporttext' => 'يمكنك تصدير النص وتاريخ تعديلات صفحة أو مجموعة صفحات في صيغة XML. هذا يمكن استيراده في ويكي آخر يستعمل ميدياويكي بواسطة الصفحة [[Special:Import|صفحة الاستيراد]].
+'exporttext' => 'يمكنك تصدير النص وتاريخ تعديلات صفحة أو مجموعة صفحات في صيغة XML.
+هذا يمكن استيراده إلى ويكي آخر يستعمل ميدياويكي بواسطة [[Special:Import|صفحة الاستيراد]].
 
\84تصدÙ\8aر ØµÙ\81حاتØ\8c Ø£Ø¯Ø®Ù\84 Ø§Ù\84عÙ\86اÙ\88Ù\8aÙ\86 Ù\81Ù\8a Ø§Ù\84صÙ\86دÙ\88Ù\82 Ø£Ø³Ù\81Ù\84Ù\87Ø\8c Ø¹Ù\86Ù\88اÙ\86 Ù\88احد Ù\81Ù\8a Ù\83Ù\84 Ø³Ø·Ø±Ø\8c Ù\85ع Ø§Ø®ØªÙ\8aار Ù\85ا Ø¥Ø°Ø§ Ù\83Ù\86ت ØªØ±ØºØ¨ Ù\81Ù\8a Ø§Ù\84Ù\86سخة Ø§Ù\84حاÙ\84Ù\8aØ© Ø¨Ø§Ù\84إضاÙ\81Ø© Ø¥Ù\84Ù\89 Ø§Ù\84Ù\86سخ Ø§Ù\84Ù\82دÙ\8aÙ\85Ø© Ù\83اÙ\85Ù\84Ø©Ø\8c Ø£Ù\88 Ù\85ع Ù\85عÙ\84Ù\88Ù\85ات ØªØ§Ø±Ù\8aØ® Ø§Ù\84صÙ\81حة Ø¹Ù\86Ù\87ا، أو فقط النسخة الحالية مع معلومات عن التعديل الأخير.
\84تصدÙ\8aر Ø§Ù\84صÙ\81حاتØ\8c Ø£Ø¯Ø®Ù\84 Ø¹Ù\86اÙ\88Ù\8aÙ\86Ù\87ا Ù\81Ù\8a Ø§Ù\84صÙ\86دÙ\88Ù\82 Ø£Ø³Ù\81Ù\84Ù\87Ø\8c Ø¹Ù\86Ù\88اÙ\86اÙ\8b Ù\88احداÙ\8b Ù\81Ù\8a Ù\83Ù\84 Ø³Ø·Ø±Ø\8c Ù\85ع Ø§Ø®ØªÙ\8aار Ù\85ا Ø¥Ø°Ø§ Ù\83Ù\86ت ØªØ±ØºØ¨ Ø¨ØªØµØ¯Ù\8aر Ø§Ù\84Ù\86سخة Ø§Ù\84حاÙ\84Ù\8aØ© Ù\85ع Ø¬Ù\85Ù\8aع Ø§Ù\84Ù\86سخ Ø§Ù\84Ù\82دÙ\8aÙ\85Ø©Ø\8c Ø£Ù\8a Ù\85ع Ù\83اÙ\85Ù\84 Ù\85عÙ\84Ù\88Ù\85ات ØªØ§Ø±Ù\8aØ® Ø§Ù\84صÙ\81حة، أو فقط النسخة الحالية مع معلومات عن التعديل الأخير.
 
-في الحالة الأخيرة يمكنك أيضا استخدام وصلة، على سبيل المثال [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] للصفحة "[[{{MediaWiki:Mainpage}}]]".',
+في الحالة الأخيرة يمكنك أيضاً استخدام وصلة، على سبيل المثال [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] للصفحة «[[{{MediaWiki:Mainpage}}]]».',
 'exportall' => 'صدّر كل الصفحات',
 'exportcuronly' => 'ضمن المراجعة الحالية فقط، وليس التاريخ الكامل',
 'exportnohistory' => "----
@@ -3068,7 +3104,7 @@ $1',
 'importnofile' => 'لم يتم رفع ملف استيراد.',
 'importuploaderrorsize' => 'رفع ملف الاستيراد فشل.
 الملف أكبر من حجم الرفع المسموح.',
-'importuploaderrorpartial' => 'رفع ملف الاستيراد فشل. الملف تم رفعه جزئيا.',
+'importuploaderrorpartial' => 'فشل رفع ملف الاستيراد. لم يتم رفع الملف إلا جزئياً.',
 'importuploaderrortemp' => 'رفع ملف الاستيراد فشل.
 هناك مجلد مؤقت مفقود.',
 'import-parse-failure' => 'فشل تحليل استيراد XML',
@@ -3080,6 +3116,9 @@ $1',
 'import-invalid-interwiki' => 'لم يمكن الاستيراد من الويكي المحدد.',
 'import-error-edit' => 'الصفحة "$1" لم يتم استيرادها لأنه لا يمكن لك تحريرها.',
 'import-error-create' => 'الصفحة "$1" لم يتم استيرادها لأنه لا يمكن لك استحداثها أصلا.',
+'import-error-interwiki' => 'تعذر أستيراد الصفحة "$1" بسبب أن إسمها محجوز للربط الخارجي (interwiki).',
+'import-error-special' => 'تعذر أستيراد الصفحة "$1" لأنها تنتمي إلى مساحة إسم خاصة تمنع الصفحات.',
+'import-error-invalid' => 'تعذر أستيراد الصفحة "$1" بسبب أن إسمها غير صحيح.',
 
 # Import log
 'importlogpage' => 'سجل الاستيراد',
@@ -3092,6 +3131,13 @@ $1',
 # JavaScriptTest
 'javascripttest' => 'اختبار جافاسكربت',
 'javascripttest-disabled' => 'هذه الخاصية معطلة.',
+'javascripttest-title' => 'تشغيل أختبارات $1',
+'javascripttest-pagetext-noframework' => 'هذه الصفحة محجوزة لإجراء أختبارات الجافا سكريبت.',
+'javascripttest-pagetext-unknownframework' => 'إطار اختبار غير معروف "$1".',
+'javascripttest-pagetext-frameworks' => 'الرجاء اختيار أحد أطر الاختبارات التالية: $1',
+'javascripttest-pagetext-skins' => 'قم باختيار الواجهة لإجراء الإحتبارات بها:',
+'javascripttest-qunit-intro' => 'راجع [$1 وثيقة الإختبار] على mediawiki.org.',
+'javascripttest-qunit-heading' => 'جناح أختبار MediaWiki JavaScript QUnit',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'صفحة المستخدم الخاصة بك',
@@ -3334,8 +3380,8 @@ $1',
 إذا كان الملف قد عدل عن حالته الأصلية، فبعض التفاصيل قد لا تعبر عن الملف المعدل.',
 'metadata-expand' => 'أظهر التفاصيل الممتدة',
 'metadata-collapse' => 'أخفِ التفاصيل الممتدة',
-'metadata-fields' => 'Ø­Ù\82Ù\88Ù\84 Ù\85عطÙ\8aات Ø§Ù\84Ù\85Ù\8aتا Ø§Ù\84Ù\85Ù\88جÙ\88دة Ù\81Ù\8a Ù\87Ø°Ù\87 Ø§Ù\84رساÙ\84Ø© Ø³Ù\88Ù\81 ØªØ¹Ø±Ø¶ Ù\81Ù\8a ØµÙ\81حة Ø§Ù\84صÙ\88رة Ø¹Ù\86دÙ\85ا Ù\8aÙ\83Ù\88Ù\86 Ø¬Ø¯Ù\88Ù\84 Ù\85عطÙ\8aات Ø§Ù\84Ù\85Ù\8aتا Ù\85ضغÙ\88طا.
-الحقول الأخرى ستكون مخفية افتراضيا.
+'metadata-fields' => 'ستعرض Ø­Ù\82Ù\88Ù\84 Ù\85عطÙ\8aات Ø§Ù\84Ù\85Ù\8aتا Ø§Ù\84Ù\85Ù\88جÙ\88دة Ù\81Ù\8a Ù\87Ø°Ù\87 Ø§Ù\84رساÙ\84Ø© Ù\81Ù\8a ØµÙ\81حة Ø§Ù\84صÙ\88رة Ø¹Ù\86دÙ\85ا Ù\8aÙ\83Ù\88Ù\86 Ø¬Ø¯Ù\88Ù\84 Ù\85عطÙ\8aات Ø§Ù\84Ù\85Ù\8aتا Ù\85Ø·Ù\88Ù\8aاÙ\8b.
+الحقول الأخرى ستكون مخفية افتراضياً.
 * make
 * model
 * datetimeoriginal
@@ -3353,7 +3399,7 @@ $1',
 # EXIF tags
 'exif-imagewidth' => 'العرض',
 'exif-imagelength' => 'الارتفاع',
-'exif-bitspersample' => 'بت لكل مكون',
+'exif-bitspersample' => 'بت لكل مكونة',
 'exif-compression' => 'نظام الضغط',
 'exif-photometricinterpretation' => 'تركيب البكسل',
 'exif-orientation' => 'التوجيه',
@@ -3370,19 +3416,19 @@ $1',
 'exif-jpeginterchangeformatlength' => 'بايت من بيانات JPEG',
 'exif-whitepoint' => 'ألوان النقطة البيضاء',
 'exif-primarychromaticities' => 'ألوان الأساسيات',
-'exif-ycbcrcoefficients' => 'Ù\85عاÙ\85Ù\84ات Ù\85صÙ\81Ù\88Ù\81Ø© ØªØ­Ù\88Ù\8aÙ\84 Ù\81راغ اللون',
+'exif-ycbcrcoefficients' => 'Ù\85عاÙ\85Ù\84ات Ù\85صÙ\81Ù\88Ù\81Ø© ØªØ­Ù\88Ù\8aÙ\84 Ù\81ضاء اللون',
 'exif-referenceblackwhite' => 'زوج من قيم المرجع السوداء والبيضاء',
 'exif-datetime' => 'تاريخ ووقت تغيير الملف',
 'exif-imagedescription' => 'عنوان الصورة',
 'exif-make' => 'مصنع آلة التصوير',
-'exif-model' => 'نوع آلة التصوير',
+'exif-model' => 'طراز الكاميرا',
 'exif-software' => 'البرمجيات المستخدمة',
 'exif-artist' => 'المؤلف',
 'exif-copyright' => 'مالك الحقوق',
 'exif-exifversion' => 'نسخة Exif',
 'exif-flashpixversion' => 'نسخة فلاش بكس المدعومة',
-'exif-colorspace' => 'Ù\81رÙ\82 Ø§Ù\84Ù\84Ù\88ن',
-'exif-componentsconfiguration' => 'معنى كل مكون',
+'exif-colorspace' => 'Ù\81ضاء Ø§Ù\84Ø£Ù\84Ù\88ان',
+'exif-componentsconfiguration' => 'معنى كل مكونة',
 'exif-compressedbitsperpixel' => 'طور ضغط الصورة',
 'exif-pixelydimension' => 'عرض الصورة',
 'exif-pixelxdimension' => 'ارتفاع الصورة',
@@ -3485,7 +3531,7 @@ $1',
 'exif-credit' => 'الرصيد/المزود',
 'exif-source' => 'المصدر',
 'exif-editstatus' => 'الحالة التحريرية للصورة',
-'exif-urgency' => 'Ø¥Ù\84حاح',
+'exif-urgency' => 'عاجÙ\84',
 'exif-fixtureidentifier' => 'اسم العنصر',
 'exif-locationdest' => 'اسم الموقع مصورا',
 'exif-locationdestcode' => 'رمز الموقع مصورا',
@@ -3524,9 +3570,9 @@ $1',
 'exif-intellectualgenre' => 'نوع العنصر',
 'exif-subjectnewscode' => 'رمز الموضوع',
 'exif-scenecode' => 'رمز مشهد IPTC',
-'exif-event' => 'اسم الحدث مصورا',
-'exif-organisationinimage' => 'اÙ\84Ù\85Ù\86ظÙ\85Ø© Ù\85صورة',
-'exif-personinimage' => 'اÙ\84شخص Ù\85صÙ\88را',
+'exif-event' => 'الحدث في الصورة',
+'exif-organisationinimage' => 'اÙ\84Ù\85Ù\86ظÙ\85Ø© Ù\81Ù\8a Ø§Ù\84صورة',
+'exif-personinimage' => 'اÙ\84شخص Ù\81Ù\8a Ø§Ù\84صÙ\88رة',
 'exif-originalimageheight' => 'ارتفاع الصورة قبل أن تقتطع',
 'exif-originalimagewidth' => 'عرض الصورة قبل أن تقتطع',
 
@@ -3554,15 +3600,15 @@ $1',
 'exif-unknowndate' => 'تاريخ غير معروف',
 
 'exif-orientation-1' => 'عادي',
-'exif-orientation-2' => 'دار عرضيا',
-'exif-orientation-3' => 'دار 180°',
-'exif-orientation-4' => 'دار أفقيا',
-'exif-orientation-5' => 'دار 90° CCW و انزلق رأسيا',
+'exif-orientation-2' => 'مقلوبة أفقياً',
+'exif-orientation-3' => 'مدورة 180°',
+'exif-orientation-4' => 'مقلوبة رأسياً',
+'exif-orientation-5' => 'مدورة 90° عكس عقارب الساعة ومقلوبة رأسياً',
 'exif-orientation-6' => 'مدورة 90° عكس عقارب الساعة',
-'exif-orientation-7' => 'دار 90° CW و انزلق رأسيا',
+'exif-orientation-7' => 'مدورة 90° في اتجاه عقارب الساعة ومقلوبة رأسياً',
 'exif-orientation-8' => 'مدورة 90° في اتجاه عقارب الساعة',
 
-'exif-planarconfiguration-1' => 'صيغة تشنكي',
+'exif-planarconfiguration-1' => 'صيغة مكتنزة',
 'exif-planarconfiguration-2' => 'صيغة مستوية',
 
 'exif-xyresolution-i' => '$1 نقطة لكل بوصة',
@@ -3582,12 +3628,12 @@ $1',
 'exif-exposureprogram-0' => 'غير معرف',
 'exif-exposureprogram-1' => 'يدوي',
 'exif-exposureprogram-2' => 'برنامج عادي',
-'exif-exposureprogram-3' => 'أولوية الغالق',
-'exif-exposureprogram-4' => 'أولوية الإغلاق',
-'exif-exposureprogram-5' => 'برÙ\86اÙ\85ج Ø§Ù\84صÙ\86ع (Ù\8aÙ\85Ù\8aÙ\84 ØªØ¬Ø§Ù\87 عمق الحقل)',
-'exif-exposureprogram-6' => 'برنامج الفعل (يميل تجاه سرعة الغلق)',
-'exif-exposureprogram-7' => 'Ø·Ù\88ر Ø§Ù\84بÙ\88رترÙ\8aÙ\87 (Ù\84صÙ\88ر Ø§Ù\84إغÙ\84اÙ\82 Ù\85ع Ø§Ù\84Ø®Ù\84Ù\81Ù\8aØ© Ø¨Ø¹Ù\8aدا Ø¹Ù\86 Ø§Ù\84بؤرة)',
-'exif-exposureprogram-8' => 'Ø·Ù\88ر Ø§Ù\84أرضÙ\8aØ© (Ù\84صÙ\88ر Ø§Ù\84أرضية مع الخلفية في البؤرة)',
+'exif-exposureprogram-3' => 'أولوية الفتحة',
+'exif-exposureprogram-4' => 'أولوية المغلاق',
+'exif-exposureprogram-5' => 'برÙ\86اÙ\85ج Ø®Ù\84اÙ\82 (تحÙ\8aز Ù\84صاÙ\84Ø­ عمق الحقل)',
+'exif-exposureprogram-6' => 'برنامج الفعل (تحيز لصالح سرعة المغلاق)',
+'exif-exposureprogram-7' => 'أسÙ\84Ù\88ب Ø§Ù\84بÙ\88رترÙ\8aÙ\87 (تصÙ\88Ù\8aر Ù\85Ù\86 Ù\82رÙ\8aب Ù\85ع ØªØºÙ\8aÙ\8aÙ\85 Ø§Ù\84Ø®Ù\84Ù\81Ù\8aة)',
+'exif-exposureprogram-8' => 'أسÙ\84Ù\88ب Ø§Ù\84Ù\85Ù\86ظر Ø§Ù\84طبÙ\8aعÙ\8a (Ù\84صÙ\88ر Ø§Ù\84Ù\85Ù\86اظر Ø§Ù\84طبÙ\8aعية مع الخلفية في البؤرة)',
 
 'exif-subjectdistance-value' => '$1 متر',
 
@@ -3595,7 +3641,7 @@ $1',
 'exif-meteringmode-1' => 'متوسط',
 'exif-meteringmode-2' => 'متوسط موزون بالمركز',
 'exif-meteringmode-3' => 'بقعة',
-'exif-meteringmode-4' => 'Ù\85اÙ\84تÙ\8a Ø³Ø¨Ù\88ت',
+'exif-meteringmode-4' => 'Ù\85تعدد Ø§Ù\84بÙ\82ع',
 'exif-meteringmode-5' => 'نمط',
 'exif-meteringmode-6' => 'جزئي',
 'exif-meteringmode-255' => 'غير ذلك',
@@ -3644,7 +3690,7 @@ $1',
 'exif-sensingmethod-7' => 'مستشعر خطي ثلاثي',
 'exif-sensingmethod-8' => 'مستشعر لون خطي متتابع',
 
-'exif-filesource-3' => 'كاميرا رقمية واقفة',
+'exif-filesource-3' => 'كاميرا رقمية',
 
 'exif-scenetype-1' => 'صورة ملتقطة بشكل مباشر',
 
@@ -3653,14 +3699,14 @@ $1',
 
 'exif-exposuremode-0' => 'تعرض تلقائي',
 'exif-exposuremode-1' => 'تعرض يدوي',
-'exif-exposuremode-2' => 'Ø£Ù\82Ù\88اس تلقائية',
+'exif-exposuremode-2' => 'سÙ\84سÙ\84Ø© تلقائية',
 
 'exif-whitebalance-0' => 'توازن الأبيض تلقائي',
 'exif-whitebalance-1' => 'توازن الأبيض يدوي',
 
 'exif-scenecapturetype-0' => 'قياسي',
-'exif-scenecapturetype-1' => 'Ø£رضية',
-'exif-scenecapturetype-2' => 'بÙ\88رترÙ\8aÙ\87',
+'exif-scenecapturetype-1' => 'عرضية',
+'exif-scenecapturetype-2' => 'Ø·Ù\88Ù\84Ù\8aØ©',
 'exif-scenecapturetype-3' => 'مشهد ليلي',
 
 'exif-gaincontrol-0' => 'لا شيء',
@@ -3674,8 +3720,8 @@ $1',
 'exif-contrast-2' => 'قاسي',
 
 'exif-saturation-0' => 'عادي',
-'exif-saturation-1' => 'تشبع Ù\82Ù\84Ù\8aÙ\84',
-'exif-saturation-2' => 'تشبع Ø¹Ø§Ù\84Ù\8a',
+'exif-saturation-1' => 'إشباع Ù\85Ù\86Ø®Ù\81ض',
+'exif-saturation-2' => 'إشباع Ù\85رتÙ\81ع',
 
 'exif-sharpness-0' => 'عادي',
 'exif-sharpness-1' => 'ناعم',
@@ -3683,8 +3729,8 @@ $1',
 
 'exif-subjectdistancerange-0' => 'غير معروف',
 'exif-subjectdistancerange-1' => 'ماكرو',
-'exif-subjectdistancerange-2' => 'رؤÙ\8aØ© Ù\82رÙ\8aبة',
-'exif-subjectdistancerange-3' => 'رؤÙ\8aØ© Ø¨Ø¹Ù\8aدة',
+'exif-subjectdistancerange-2' => 'صÙ\88رة Ù\85Ù\86 Ù\82رÙ\8aب',
+'exif-subjectdistancerange-3' => 'صÙ\88رة Ù\85Ù\86 Ø¨Ø¹Ù\8aد',
 
 # Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
 'exif-gpslatitude-n' => 'دائرة العرض الشمالية',
@@ -3765,7 +3811,7 @@ $1',
 'exif-urgency-normal' => 'عادي ($1)',
 'exif-urgency-low' => 'منخفض ( $1 )',
 'exif-urgency-high' => 'عالي ( $1 )',
-'exif-urgency-other' => 'الأولوية المعرفة من قبل المستخدم ($1)',
+'exif-urgency-other' => 'الأولوية محددة من قبل المستخدم ($1)',
 
 # External editor support
 'edit-externally' => 'عدل هذا الملف باستخدام تطبيق خارجي',
@@ -3780,18 +3826,18 @@ $1',
 # E-mail address confirmation
 'confirmemail' => 'تأكيد عنوان البريد الإلكتروني',
 'confirmemail_noemail' => 'ليس لديك عنوان بريد إلكتروني صحيح مسجل في [[Special:Preferences|تفضيلاتك]].',
-'confirmemail_text' => '{{SITENAME}} Ù\8aتطÙ\84ب تأكيد عنوانك الإلكتروني قبل استخدام خصائص البريد الإلكتروني.
-اضغط على زر التفعيل بالأسفل ليتم إرسال رسالة تأكيد لعنوانك.
+'confirmemail_text' => '{{SITENAME}} Ù\8aجب تأكيد عنوانك الإلكتروني قبل استخدام خصائص البريد الإلكتروني.
+اضغط على زر التفعيل بالأسفل ليتم إرسال رسالة تأكيد إلى عنوانك.
 ستتضمن الرسالة رمز تفعيل؛
 اضغط على الوصلة التي تحتوي الرمز لتأكيد أن عنوانك الإلكتروني صحيح.',
-'confirmemail_pending' => 'تÙ\85 Ø¥Ø±Ø³Ø§Ù\84 Ù\83Ù\88د Ø§Ù\84تأÙ\83Ù\8aد Ø¨Ø§Ù\84Ù\81عÙ\84 Ù\85Ù\86 Ù\82بÙ\84 Ø¥Ù\84Ù\89 Ø¨Ø±Ù\8aدÙ\83 Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a؛
-إذا كان حسابك قد تم عمله حالا، ربما يجب أن تنتظر بضع دقائق قبل طلبك لكود آخر.',
+'confirmemail_pending' => 'تÙ\85 Ø¥Ø±Ø³Ø§Ù\84 Ù\83Ù\88د Ø§Ù\84تأÙ\83Ù\8aد Ø¥Ù\84Ù\89 Ø¨Ø±Ù\8aدÙ\83 Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a Ù\85ؤخراÙ\8b؛
+إذا كنت قد أنشأت حسابك للتو، من الأفضل أن تنتظر بضع دقائق قبل أن تطلب كوداً آخر.',
 'confirmemail_send' => 'أرسل كود تأكيد',
 'confirmemail_sent' => 'تم إرسال رسالة التأكيد، شكرا لك.',
-'confirmemail_oncreate' => 'تم إرسال كود تأكيد لعنوان بريدك الإلكتروني.
-لا يشترط أن تستخدم الكود للدخول للموسوعة باسمك، ولكن يجب أن تقوم بإدخاله قبل استخدامك أيا من خواص البريد الإلكتروني المستخدمة هنا في الويكي.',
+'confirmemail_oncreate' => 'تم إرسال كود تأكيد إلى عنوان بريدك الإلكتروني.
+الكود غير مطلوب للدخول إلى الموسوعة باسمك، ولكن يجب إدخاله قبل استخدامك أياً من خواص البريد الإلكتروني المستخدمة هنا في الويكي.',
 'confirmemail_sendfailed' => 'لم يتمكن {{SITENAME}} من إرسال رسالة التأكيد إليك.
\85Ù\86 Ù\81ضÙ\84Ù\83 Ø§Ù\84تÙ\85س Ø¹Ù\86Ù\88اÙ\86 Ø¨Ø±Ù\8aدÙ\83 Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a Ø¨Ø§Ø­Ø«Ø§ عن حروف غير صحيحة.
\85Ù\86 Ù\81ضÙ\84Ù\83 ØªØ£Ù\83د Ù\85Ù\86 Ø¹Ù\86Ù\88اÙ\86 Ø¨Ø±Ù\8aدÙ\83 Ø§Ù\84Ø¥Ù\84Ù\83ترÙ\88Ù\86Ù\8a Ø¨Ø­Ø«Ø§Ù\8b عن حروف غير صحيحة.
 
 أرجع خادم البريد: $1',
 'confirmemail_invalid' => 'كود تأكيد غير صحيح.
@@ -4041,6 +4087,8 @@ $5
 'version-software' => 'البرنامج المثبت',
 'version-software-product' => 'المنتج',
 'version-software-version' => 'النسخة',
+'version-entrypoints' => 'نقطة دخول روابط المواقع',
+'version-entrypoints-header-entrypoint' => 'تقطة دخول',
 'version-entrypoints-header-url' => 'المسار',
 
 # Special:FilePath
@@ -4168,6 +4216,8 @@ $5
 'logentry-move-move-noredirect' => 'نقل $1 صفحة $3 إلى $4 دون ترك تحويلة',
 'logentry-move-move_redir' => 'نقل $1 صفحة $3 إلى التحويلة $4',
 'logentry-move-move_redir-noredirect' => 'نقل $1 صفحة $3 إلى التحويلة $4 دون ترك تحويلة',
+'logentry-patrol-patrol' => '$1 مراجعة معلمة $4 للصفحة $3 تم معاينتها',
+'logentry-patrol-patrol-auto' => '$1 مراجعة معلمة تلقائيا $4 للصفحة $3 تم مراجعتها',
 'logentry-newusers-newusers' => 'أنشأ $1 حساب مستخدم',
 'logentry-newusers-create' => 'أنشأ $1 حساب مستخدم',
 'logentry-newusers-create2' => 'أنشأ $1 حساب المستخدم $3',
@@ -4175,6 +4225,8 @@ $5
 'newuserlog-byemail' => 'كلمة السر تم إرسالها بواسطة البريد الإلكتروني',
 
 # Feedback
+'feedback-bugornote' => 'إن كنت مستعدا لشرح  مشكلة تقنية بالتفصيل، رجاءا [$1 قدم تقريرا بالخلل].
+بخلاف ذلك، يمكنك أستخدام الطريقة الأسهل أسفله، سيتم إضافة تعليقك للصفحة "[$3 $2]"، بالإضافة إلى اسم المستخدم و نوع المتصفح الذي تستخدمه حاليا.',
 'feedback-subject' => 'الموضوع:',
 'feedback-message' => 'الرسالة:',
 'feedback-cancel' => 'ألغِ',
index 9cc3f86..90ae5ec 100644 (file)
@@ -51,11 +51,16 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'ܒܪܝ_ܚܘܫܒܢܐ' ),
        'DeletedContributions'      => array( 'ܫܘܬܦܘܝܬ̈ܐ_ܫܝܦܬ̈ܐ' ),
        'Filepath'                  => array( 'ܫܒܝܠܐ_ܕܦܐܬܐ' ),
-       'Log'                       => array( 'ܣܓܠ̈ܐ' ),
+       'Log'                       => array( 'ܣܓܠܐ', 'ܣܓܠ̈ܐ' ),
+       'Lonelypages'               => array( 'ܦܐܬܬ̈ܐ_ܝܬܡܬ̈ܐ' ),
        'Longpages'                 => array( 'ܦܐܬܬ̈ܐ_ܐܪ̈ܝܟܬܐ' ),
        'Movepage'                  => array( 'ܫܢܝ_ܦܐܬܐ' ),
        'Mycontributions'           => array( 'ܫܘܬܦܘܝܬ̈ܝ' ),
+       'Mypage'                    => array( 'ܦܐܬܐ_ܕܝܠܝ' ),
+       'Mytalk'                    => array( 'ܡܡܠܠܐ_ܕܝܠܝ' ),
+       'Newimages'                 => array( 'ܠܦܦ̈ܐ_ܚܕ̈ܬܐ', 'ܨܘܪ̈ܬܐ_ܚܕ̈ܬܬܐ' ),
        'Newpages'                  => array( 'ܦܐܬܬ̈ܐ_ܚܕ̈ܬܬܐ' ),
+       'PermanentLink'             => array( 'ܐܣܘܪܐ_ܦܝܘܫܐ' ),
        'Preferences'               => array( 'ܓܒܝܬ̈ܐ' ),
        'Protectedpages'            => array( 'ܦܐܬܬ̈ܐ_ܢܛܝܪ̈ܬܐ' ),
        'Protectedtitles'           => array( 'ܟܘܢܝ̈ܐ_ܢܛܝܪ̈ܐ' ),
@@ -275,9 +280,9 @@ $messages = array(
 'jumpto' => 'ܫܘܪ ܠ:',
 'jumptonavigation' => 'ܐܠܦܪܘܬܐ',
 'jumptosearch' => 'ܒܨܝܐ',
-'view-pool-error' => 'ܬÜ\98Ü\9dÜ\9aÜ\90Ø\8c Ü\9aÜ\95Ü¡Ì\88Ü\90 Ü\97Ü\98Ü\90 Ü\93Ü\97̈ܝܐ ܗܫܐܝܬ
-Ü£Ü\93Ü\9d Ü¡Ü¦Ü Ü\9aÜ¢Ì\88Ü\90 Ü©Ü«Ü\95Ü\98ܪÜ\90 Ü Ü¡Ü\9bÜ\90 Ü Ü\97Ü¢Ü\90 Ü¦Ü\90ܬܐ
-ܦÜ\9dÜ£Ü\90 Ü¡Ü¢Ü\9f Ü£Ü\9fÜ\9d Ü©Ü Ü\9dÜ  Ü¡Ü¢ Ü©Ü\95Ü¡ Ü\95Ü\93ܪÜ\92ܬ Ü Ü¡Ü\9bÜ\9dÜ\90 Ü Ü\90Ü\97Ü\90 Ü¦Ü\90ܬÜ\90 Ü¬Ü¢Ü\9dÜ¢Ü\98ܬ.
+'view-pool-error' => 'ܬÜ\98Ü\9dÜ\9aÜ\90Ø\8c Ü¬Ü«Ü¡Ü«Ü¬Ì\88Ü\90 Ü\90Ü¢Ü\98Ü¢ Ü Ü\90̈ܝܐ ܗܫܐܝܬ
+Ü£Ü\93Ü\9d Ü¡Ü¦Ü Ü\9aÜ¢Ì\88Ü\90 Ü¢Ü£Ü\9dÜ¢ Ü Ü\9aÜ\99Ü\9dÜ\90 Ü\95Ü\97Ü¢Ü\90 Ü\95ܦܐ
+ܦÜ\9dÜ£Ü\90 Ü¡Ü¢Ü\9f Ü£Ü\9fÜ\9d Ü©Ü Ü\9dÜ  Ü¡Ü¢ Ü©Ü\95Ü¡ Ü\95ܬܢܣÜ\90 Ü Ü¡Ü\9bÜ\9dÜ\90 Ü Ü\97Ü¢Ü\90 Ü\95ܦÜ\90 Ü\99Ü\92ܢܬÜ\90 Ü\90Ü\9aܪܬÜ\90.
 
 $1',
 'pool-timeout' => 'ܫܠܡ ܥܕܢܐ ܣܒܪܬܐ ܠܚܠܩܐ',
@@ -358,9 +363,9 @@ $1',
 'actionthrottled' => 'ܠܐ ܡܬܡܨܝܢܬܐ ܐܝܬܝܗܝ ܠܡܥܒܕ ܝܬܝܪ ܡܢ ܗܢܐ ܥܒܕܐ',
 'viewsourcetext' => 'ܡܨܐ ܐܢܬ ܕܢܚܙܐ ܘܢܣܚܐ ܠܡܒܘ̈ܥܐ ܕܗܕܐ ܦܐܬܐ:',
 'protectedinterface' => 'ܗܕܐ ܦܐܬܐ ܡܘܬܪܐ ܟܬܝܒܬܐ ܕܦܐܬܐ ܠܚܘܪܙܐ, ܘܐܝܬܝܗܝ ܢܛܪܬܐ ܠܡܘܢܥ ܚܘܒܠܐ.',
-'editinginterface' => "''ܙܘܗܪܐ:''' ܐܢܬ ܥܒܕܬ ܫܚܠܦܬܐ ܒܦܐܬܐ ܡܬܦܠܚܬ ܠܡܘܬܘܪ̈ܐ ܦܐܬܘܬ̈ܐ ܟܬܝܒ̈ܐ ܠܚܘܪܙܐ.
\9fÜ  Ü«Ü\98Ü\9aܠܦÜ\90 Ü\92Ü\90Ü\97Ü\90 Ü¦Ü\90ܬÜ\90 Ü\92Ü\95 Ü¥Ü\92Ü\95 Ü\9fܪ Ü¥Ü  Ü¡Ü\9aÜ\99Ü\9dܬÜ\90 Ü¦Ü\90ܬÜ\90 Ü\95ܡܦܠÜ\9aÜ¢Ü\90 Ü Ü¡Ü¦Ü Ü\9aÜ¢Ì\88Ü\90 Ü\90Ü\9aܪÌ\88Ü\9dܢܐ.
-ܠܬÜ\98ܪÌ\88Ü\93Ü¡Ü\90Ø\8c Ü¡Ü¦Ü Ü\9a Ü¬ÜªÜ¡Ü\9dܬÜ\90 ܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ [//translatewiki.net/wiki/Main_Page?setlang=ar translatewiki.net].",
+'editinginterface' => "'''ܙܘܗܪܐ:''' ܐܢܬ ܫܚܠܦܬ ܕܦܐ ܕܡܬܦܠܚ ܒܚܙܝܐ ܟܬܝܒܝܐ ܕܚܘܪܙܐ.
\9fÜ  Ü«Ü\98Ü\9aܠܦÜ\90 Ü\92Ü\97Ü¢Ü\90 Ü\95ܦÜ\90 Ü¢Ü\97Ü\98Ü\90 Ü Ü\97 Ü¡Ü¥Ü\92Ü\95Ü¢Ü\98ܬÜ\90 Ü¥Ü  Ü\90Ü£Ü\9fÜ¡Ü\90 Ü\95Ü\95ܦÜ\90 Ü\95ܡܦܠÜ\9aÜ¢Ü\90 Ü\95ܡܦܠÜ\9aÜ¢Ì\88Ü\90 Ü\90Ü\9aܪÌ\88ܢܐ.
+ܠܬÜ\98ܪÌ\88Ü\93Ü¡Ü\90Ø\8c Ü\90ܦܠÜ\9a Ü¬ÜªÜ¡Ü\9dܬÜ\90 Ü\95ܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ [//translatewiki.net/wiki/Main_Page?setlang=ar translatewiki.net].",
 'sqlhidden' => '(ܒܘܬܬܐ SQL ܛܫܝܐ)',
 'namespaceprotected' => "ܠܝܬ ܠܟ ܦܣܣܐ ܠܫܚܠܦܬܐ ܕܦܐܬܬ̈ܐ ܒܚܩܠܐ ܕ'''$1'''.",
 
@@ -369,7 +374,7 @@ $1',
 
 ܡܨܐ ܐܢܬ ܕܐܬܚܫܚ {{SITENAME}} ܐܝܟ ܡܦܠܚܢܐ ܠܐ ܝܕܝܥܐ ܐܘ ܡܨܐ ܐܢܬ ܕ[[Special:UserLogin|ܬܥܘܠ]] ܒܚܘܫܒܢܐ ܥܝܢܗ ܐܘ ܐܝܟ ܡܦܠܚܢܐ ܐܚܪܢܐ.
 
\9aÜ\95 Ü\9fÜ¡Ü\90 Ü¡Ü¢ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü¡Ü¬Ü\9aÜ\99Ü\9dÜ¢ Ü\90Ü\9dÜ\9f Ü\95Ü\97Ü\98 Ü\90ܢܬ Ü¥Ü Ü\9dÜ Ü\90 Ü¥Ü\95Ü¡Ü\90 Ü\95Ü\90ܣܦܩܬ Ü Ü¦Ü\90ܬܬÌ\88ܐ ܠܒܝܟ̈ܐ ܕܡܦܐܬܢܐ ܕܝܠܟ",
\9aÜ\95 Ü\9fÜ¡Ü\90 Ü¡Ü¢ Ü\95Ì\88ܦÜ\90 Ü¡Ü¬Ü\9aÜ\99Ü\9dÜ¢ Ü\90Ü\9dÜ\9f Ü\95Ü\97Ü\98 Ü\90ܢܬ Ü¥Ü Ü\9dÜ Ü\90 Ü¥Ü\95Ü¡Ü\90 Ü\95Ü\90ܣܦܩܬ Ü Ü\95Ì\88ܦܐ ܠܒܝܟ̈ܐ ܕܡܦܐܬܢܐ ܕܝܠܟ",
 'welcomecreation' => '== ܒܫܝܢܐ, $1! ==
 ܐܬܒܪܝ ܚܘܫܒܢܟ.
 ܠܐ ܢܫܐ ܐܢܬ ܠܫܚܠܦܬܐ ܕ[[Special:Preferences|ܓܒܝܬ̈ܐ ܒ {{SITENAME}}]].',
@@ -466,11 +471,13 @@ $1',
 'note' => "'''ܡܥܝܪܢܘܬܐ:'''",
 'previewnote' => "'''ܕܟܪ ܕܗܢܘ ܚܝܪܐ ܩܕܡܝܐ ܒܠܚܘܕ'''.
 ܫܘܚܠܦ̈ܐ ܕܝܠܟ ܠܐ ܐܬܠܒܟܘ ܥܕܡܐ ܠܗܫܐ!",
+'continue-editing' => 'ܐܓܡܪ ܠܫܘܚܠܦܐ',
 'editing' => 'ܫܚܠܦܬܐ ܕ $1',
 'creating' => 'ܣܘܝܡܐ ܕ $1',
 'editingsection' => 'ܫܚܠܦܬܐ ܕ $1 (ܡܢܬܐ)',
 'editingcomment' => 'ܫܚܠܦܬܐ ܕ $1 (ܡܢܬܐ ܚܕܬܐ)',
 'yourtext' => 'ܟܬܒܬܐ ܕܝܠܟ',
+'storedversion' => 'ܬܢܝܬ̈ܐ ܐܣܝܢ̈ܐ',
 'editingold' => "'''ܙܘܗܪܐ: ܫܚܠܦ ܐܢܬ ܬܢܝܬܐ ܥܬܝܩܬܐ ܕܕܦܐ ܗܢܐ.'''
 ܐܢ ܠܒܟ ܐܢܬ ܕܦܐ ܗܢܐ, ܟܠ ܫܘ̈ܚܠܦܐ ܕܐܬܥܒܕܘ ܒܬܪ ܗܕܐ ܬܢܝܬܐ ܢܬܛܠܩܘܢ.",
 'yourdiff' => 'ܦܪ̈ܝܫܘܝܬܐ',
@@ -559,7 +566,7 @@ $1',
 'revertmerge' => 'ܒܛܘܠ ܚܒܛܐ',
 
 # Diffs
-'history-title' => 'ܬܫܥܝܬܐ ܕܬܢܝܬܐ ܕ "$1"',
+'history-title' => '"$1": ܬܫܥܝܬܐ ܕܬܢܝܬܐ',
 'lineno' => 'ܣܪܛܐ $1:',
 'compareselectedversions' => 'ܦܚܘܡ ܒܝܬ ܬܪܝܢ ܬܢܝܬ̈ܐ ܓܒܝܬ̈ܐ',
 'showhideselectedversions' => 'ܚܘܝ/ܛܫܝ ܬܢܝܬ̈ܐ ܓܒܝܬ̈ܐ',
@@ -778,7 +785,7 @@ $1',
 'nchanges' => '$1 {{PLURAL:$1|ܫܘܚܠܦܐ|ܫܘܚܠܦ̈ܐ}}',
 'recentchanges' => 'ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ',
 'recentchanges-legend' => 'ܓܒܝܬ̈ܐ ܕܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ',
-'recentchangestext' => 'ܥܩܒ ܫܘܚܠܦ̈ܐ ܚܕܬ ܡܢ ܟܠ ܕܘܝܩܝ ܒܦܐܬܐ ܗܕܐ.',
+'recentchanges-summary' => 'ܥܩܒ ܫܘܚܠܦ̈ܐ ܚܕܬ ܡܢ ܟܠ ܕܘܝܩܝ ܒܦܐܬܐ ܗܕܐ.',
 'recentchanges-label-newpage' => 'ܫܘܚܠܦܐ ܗܢܐ ܐܬܬܣܝܡ ܕܦܐ ܚܕܬܐ',
 'recentchanges-label-minor' => 'ܗܢܘ ܫܘܚܠܦܐ ܙܥܘܪܐ',
 'recentchanges-label-bot' => 'ܒܘܬ (bot) ܥܒܕ ܗܢܐ ܫܘܚܠܦܐ',
index 1c2fda3..8e90cd9 100644 (file)
@@ -477,7 +477,7 @@ Rulpakünuy feychi kangelkülelu dungu.",
 'nchanges' => '{{PLURAL:$1|kalekünuy|kalekünuy}} $1',
 'recentchanges' => 'Weke kalekünun',
 'recentchanges-legend' => 'Weke kalekünun ñi dullin',
-'recentchangestext' => 'Inayafin doy weke kalekünun tüfa mew.',
+'recentchanges-summary' => 'Inayafin doy weke kalekünun tüfa mew.',
 'recentchanges-feed-description' => 'Inayafin doy weke kalekünun wiki ñi amuldungu mew',
 'recentchanges-label-newpage' => 'Tüfachi wirin dewmakey kiñe we wülngiñ.',
 'recentchanges-label-minor' => 'Tüfachi ta kiñe pichi wirin',
index 4327dc6..730ae0d 100644 (file)
@@ -1239,7 +1239,7 @@ Laḫed ana imken ikono l-indexaṫ dial {{SITENAME}} qdam o ma bqaoċ ṣalḫi
 'nchanges' => '{{PLURAL:$1|ṫeġyira weḫda|$1 dyal ṫ-ṫeġyiraṫ}}',
 'recentchanges' => 'Ṫ-Ṫeĝdilaṫ l-leĥĥra',
 'recentchanges-legend' => 'Opsyon dyal ṫ-ṫeġyiraṫ l-leĥĥra',
-'recentchangestext' => 'Ṫebbeĝ ṫ-ṫeĝdilaṫ l-leĥĥrin dyal had l-wiki fe waḫed l-flu.',
+'recentchanges-summary' => 'Ṫebbeĝ ṫ-ṫeĝdilaṫ l-leĥĥrin dyal had l-wiki fe waḫed l-flu.',
 'recentchanges-feed-description' => 'Ṫebbeĝ ṫ-ṫeĝdilaṫ l-leĥĥrin dyal had l-wiki fe waḫed l-flu.',
 'recentchanges-label-newpage' => "anch' had tadil sfha jdida",
 'recentchanges-label-minor' => 'Hada ṫeĝdil sġir',
index b145a56..4c9e237 100644 (file)
@@ -191,7 +191,7 @@ $magicWords = array(
        'padleft'                 => array( '0', 'باد_يسار', 'PADLEFT' ),
        'padright'                => array( '0', 'باد_يمين', 'PADRIGHT' ),
        'special'                 => array( '0', 'خاص', 'special' ),
-       'defaultsort'             => array( '1', 'ترتيب_قياسى:', 'ترتيب_افتراضى:', 'مفتاح_ترتيب_قياسى:', 'مفتاح_ترتيب_افتراضى:', 'ترتيب_تصنيف_قياسى:', 'ترتيب_تصنيف_افتراضى:', 'ترتيب_قياسي:', 'ترتيب_افتراضي:', 'مفتاح_ترتيب_قياسي:', 'مفتاح_ترتيب_افتراضي:', 'ترتيب_تصنيف_قياسي:', 'ترتيب_تصنيف_افتراضي:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
+       'defaultsort'             => array( '1', 'ترتيب_قياسى:', 'ترتيب_افتراضى:', 'مفتاح_ترتيب_قياسى:', 'مفتاح_ترتيب_افتراضى:', 'ترتيب_تصنيف_قياسى:', 'ترتيب_تصنيف_افتراضى:', 'ترتيب_قياسي:', 'ترتيب_افتراضي:', 'مفتاح_ترتيب_قياسي:', 'مفتاح_ترتيب_افتراضي:', 'ترتيب_تصنيف_قياسي:', 'ترتيب_تصنيف_افتراضي:', 'ترتيب_غيابي:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                => array( '0', 'مسار_الملف:', 'FILEPATH:' ),
        'tag'                     => array( '0', 'وسم', 'tag' ),
        'hiddencat'               => array( '1', '__تصنيف_مخفي__', '__HIDDENCAT__' ),
@@ -1515,7 +1515,7 @@ $1",
 'nchanges' => '{{PLURAL:$1|تعديل|تعديلين|$1 تعديلات|$1 تعديل|$1 تعديل}}',
 'recentchanges' => 'اخر التعديلات',
 'recentchanges-legend' => 'اختيارات اخر التعديلات',
-'recentchangestext' => 'تابع آخر التغييرات فى الويكى على الصفحة دى.',
+'recentchanges-summary' => 'تابع آخر التغييرات فى الويكى على الصفحة دى.',
 'recentchanges-feed-description' => 'تابع اخر التعديلات للويكى ده عن طريق الفييد ده .',
 'recentchanges-label-newpage' => 'التعديل ده عمل صفحه جديده',
 'recentchanges-label-minor' => 'ده تعديل صغير',
index 82856b7..40a1649 100644 (file)
@@ -394,9 +394,9 @@ $1',
 'feed-invalid' => 'অবৈধ গ্ৰাহক ফিড প্ৰকাৰ',
 'feed-unavailable' => 'চিণ্ডিকেশ্যন ফিড মজুত নাই',
 'site-rss-feed' => '$1 আৰ-এচ-এচ ফীড',
-'site-atom-feed' => '$1 à¦\8fà¦\9fম à¦«à¦¿ড',
+'site-atom-feed' => '$1 à¦\8fà¦\9fম à¦«à§\80ড',
 'page-rss-feed' => '"$1" আৰ-এচ-এচ ফীড',
-'page-atom-feed' => '"$1" à¦\8fà¦\9fম à¦«à¦¿ড',
+'page-atom-feed' => '"$1" à¦\8fà¦\9fম à¦«à§\80ড',
 'red-link-title' => '$1 (পৃষ্ঠাটো নাই)',
 'sort-descending' => 'ক্ৰমহ্ৰস্বমান ভাৱে ক্ৰমবদ্ধ কৰক',
 'sort-ascending' => 'ক্ৰমবৰ্দ্ধমান ভাৱে ক্ৰমবদ্ধ কৰক',
@@ -519,7 +519,7 @@ $2',
 'externaldberror' => 'কোনো প্ৰামাণ্যকৰণ তথ্যকোষৰ ত্ৰুটি ঘটিছে নতুবা আপোনাৰ বৰ্হি-একাউণ্ট নৱীকৰণ কৰাৰ অনুমতি নাই ।',
 'login' => 'প্ৰৱেশ',
 'nav-login-createaccount' => 'প্ৰৱেশ/সদস্যভুক্তি',
-'loginprompt' => '{{SITENAME}}ত à¦ªà§\8dৰৱà§\87শ à¦\95ৰিবলà§\88 à¦\86পà§\81নি à¦\95à§\81à¦\95à§\80 à¦¸à¦\95à§\8dৰà§\80য় à¦\95ৰিব à¦²à¦¾à¦\97িব',
+'loginprompt' => '{{SITENAME}}ত à¦ªà§\8dৰৱà§\87শ à¦\95ৰিবলà§\88 à¦\86পà§\81নি à¦\95à§\81à¦\95িà¦\9cà§\8d à¦¸à¦\95à§\8dৰিয় à¦¥à¦¾à¦\95িব à¦²à¦¾à¦\97িব।',
 'userlogin' => 'প্ৰৱেশ/সদস্যভুক্তি',
 'userloginnocreate' => 'প্ৰৱেশ',
 'logout' => 'প্ৰস্থান',
@@ -611,7 +611,7 @@ $2',
 # Change password dialog
 'resetpass' => 'গুপ্তশব্দ সলনি কৰক',
 'resetpass_announce' => 'আপুনি ই-মেইলত পোৱা অস্থায়ী গুপ্তশব্দৰে প্ৰৱেশ কৰিছে।
-পà§\8dৰৱà§\87শ à¦¸à¦®à§\8dপà§\81ৰ্ণ কৰিবলৈ, আপুনি এটা নতুন গুপ্তশব্দ দিব লাগিব:',
+পà§\8dৰৱà§\87শ à¦¸à¦®à§\8dপà§\82ৰ্ণ কৰিবলৈ, আপুনি এটা নতুন গুপ্তশব্দ দিব লাগিব:',
 'resetpass_header' => 'গুপ্তশব্দ সলনি কৰক',
 'oldpassword' => 'পুৰণি গুপ্তশব্দ:',
 'newpassword' => 'নতুন গুপ্তশব্দ:',
@@ -1067,7 +1067,7 @@ $1",
 'mergelogpagetext' => 'এখন পৃষ্ঠাৰ ইতিহাস আন এখনৰ লগত কৰা একত্ৰীকৰণৰ সকলোতকৈ শেহতীয়া তালিকা তলত দিয়া হ’ল ।',
 
 # Diffs
-'history-title' => '"$1" à§° à¦¸à¦¾à¦²-সলনিৰ ইতিহাস',
+'history-title' => '"$1" à§° à¦¸à¦\82শà§\8bধনৰ ইতিহাস',
 'difference-multipage' => '(পৃষ্ঠাসমূহৰ মাজত তফাৎ)',
 'lineno' => '$1 নং শাৰীঃ',
 'compareselectedversions' => 'নিৰ্বাচিত কৰা সংকলন সমূহৰ মাজত পাৰ্থক্য চাওক',
@@ -1427,7 +1427,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|সাল-সলনি|সাল-সলনি}}',
 'recentchanges' => 'শেহতীয়া সাল-সলনি',
 'recentchanges-legend' => 'সাম্প্ৰতিক সালসলনিৰ পছন্দসমূহ',
-'recentchangestext' => 'ৱিকিত হোৱা শেহতীয়া সাল-সলনি এই পৃষ্ঠাত অনুসৰণ কৰক।',
+'recentchanges-summary' => 'ৱিকিত হোৱা শেহতীয়া সাল-সলনি এই পৃষ্ঠাত অনুসৰণ কৰক।',
 'recentchanges-feed-description' => 'ৱিকিত হোৱা শেহতীয়া সাল-সলনি এই ফীডত অনুসৰণ কৰক।',
 'recentchanges-label-newpage' => 'এই সম্পাদনাই এখন নতুন পৃষ্ঠা তৈয়াৰ কৰিছে',
 'recentchanges-label-minor' => 'এইটো অগুৰুত্বপূৰ্ণ সম্পাদনা',
@@ -1630,7 +1630,7 @@ URL টোৰ বৈধতা বিচাৰ কৰি পুনৰ চেষ
 'backend-fail-writetemp' => "অস্থায়ী ফাইলত লিখিব পৰা নগ'ল।",
 'backend-fail-closetemp' => "অস্থায়ী ফাইল বন্ধ কৰিব পৰা নগ'ল।",
 'backend-fail-read' => "$1 ফাইলটো পঢ়িব পৰা নগ'ল",
-'backend-fail-create' => "$1 ফাইলটো সৃষ্টি কৰিব পৰা নগ'ল",
+'backend-fail-create' => "$1 ফাইলটো সৃষ্টি কৰিব পৰা নগ'ল",
 'backend-fail-maxsize' => "$1 ফাইলটো সৃষ্টি কৰিব পৰা নগ'ল কিয়নো ইয়াৰ আকাৰ {{PLURAL:$2|$2 বাইটতকৈ|$2 বাইটতকৈ}} বেছি।",
 'backend-fail-readonly' => 'ষ্ট\'ৰেজ বেক্‌এণ্ড "$1"ক কেৱল পঢ়িব পৰা যায়। ইয়াৰ কাৰণ হ\'ল: "$2"',
 'backend-fail-synced' => '"$1" ফাইলটো আভ্যন্তৰীণ ষ্ট\'ৰেজ বেক্‌এণ্ডৰ লগত অসঙ্গত অৱস্থাত আছে',
index 998632a..1129967 100644 (file)
@@ -1403,7 +1403,7 @@ Esta información sedrá pública.",
 'nchanges' => '{{PLURAL:$1|un cambiu|$1 cambios}}',
 'recentchanges' => 'Cambios recientes',
 'recentchanges-legend' => 'Opciones de cambios recientes',
-'recentchangestext' => 'Sigui los últimos cambios de la wiki nesta páxina.',
+'recentchanges-summary' => 'Sigui los cambios más recientes na wiki nesta páxina.',
 'recentchanges-feed-description' => 'Sigui nesta canal los últimos cambios de la wiki.',
 'recentchanges-label-newpage' => 'Esta edición creó una páxina nueva',
 'recentchanges-label-minor' => 'Esta ye una edición menor',
@@ -1618,14 +1618,15 @@ Si'l problema persiste, contauta con un [[Special:ListUsers/sysop|alministrador]
 'backend-fail-writetemp' => 'Nun se pudo escribir nel ficheru temporal.',
 'backend-fail-closetemp' => 'Nun se pudo zarrar el ficheru temporal.',
 'backend-fail-read' => 'Nun se pudo lleer el ficheru $1.',
-'backend-fail-create' => 'Nun se pudo crear el ficheru $1.',
-'backend-fail-maxsize' => 'Nun se pudo crear el ficheru  $1  porque ye mayor de {{PLURAL:$2|$2 byte|$2 bytes}}.',
+'backend-fail-create' => 'Nun se pudo escribir el ficheru $1.',
+'backend-fail-maxsize' => 'Nun se pudo escribir el ficheru  $1  porque ye mayor de {{PLURAL:$2|un byte|$2 bytes}}.',
 'backend-fail-readonly' => 'Nesti momentu el motor d\'almacenamientu "$1" ta en mou de sólo llectura. El motivu dau foi: "$2"',
 'backend-fail-synced' => 'El ficheru "$1" ta nún estáu inconsistente colos motores d\'almacenamientu internos',
 'backend-fail-connect' => 'Nun se pudo coneutar col motor d\'almacenamientu "$1".',
 'backend-fail-internal' => 'Hebo un fallu desconocíu nel motor d\'almacenamientu "$1".',
 'backend-fail-contenttype' => 'Non se pudo determinar la triba de conteníu de ficheru a guardar en "$1".',
 'backend-fail-batchsize' => "El motor d'almacenamientu dio un llote de $1 {{PLURAL:$1|operación|operaciones}} en ficheros; el llímite ye de $2 {{PLURAL:$2|operación|operaciones}}.",
+'backend-fail-usable' => 'Nun se pudo escribir el ficheru $1 porque nun hai permisos bastantes o falten los direutorios/contenedores.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Nun se pudo coneutar cola base de datos del diariu pal sofitu d\'almacenamientu "$1".',
@@ -1688,7 +1689,6 @@ Pa una meyor seguridá, img_auth.php ta desactiváu.",
 'http-curl-error' => 'Error al baxar la URL: $1',
 'http-host-unreachable' => 'Nun se pudo acceder a la URL.',
 'http-bad-status' => 'Hebo un problema demientres la llamada HTTP: $1 $2',
-'http-truncated-body' => 'El cuerpu solicitáu recibióse namái parcialmente.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Nun se pudo acceder a la URL',
index 6086ae9..0cc9e11 100644 (file)
@@ -1066,7 +1066,7 @@ Rinafe e-mail mane me zo razdar viele ar webesik uzerar.',
 'nchanges' => '$1 {{PLURAL:$1|betaks|betaks}}',
 'recentchanges' => 'Noeltaf betakseem',
 'recentchanges-legend' => 'Ikatcuks ke noeltaf betaks',
-'recentchangestext' => 'Moo batu bu va ironokaf betakseem ke {{SITENAME}} suzdal.',
+'recentchanges-summary' => 'Moo batu bu va ironokaf betakseem ke {{SITENAME}} suzdal.',
 'recentchanges-feed-description' => 'Sledara va tel lonoeltaf betakseem va wiki koo bat rust.',
 'recentchanges-label-newpage' => 'Bata betara va warzafu bu reduyur',
 'recentchanges-label-minor' => 'Betamaks',
index f80fd55..18c6564 100644 (file)
@@ -1211,7 +1211,7 @@ Həmçinin kimliyinizi gostərmədən belə, başqalarının sizinlə istifadə
 'nchanges' => '$1 {{PLURAL:$1|dəyişiklik|dəyişiklik}}',
 'recentchanges' => 'Son dəyişikliklər',
 'recentchanges-legend' => 'Son dəyişiklik seçimləri',
-'recentchangestext' => "'''Ən son dəyişiklikləri bu səhifədən izləyin:'''",
+'recentchanges-summary' => "'''Ən son dəyişiklikləri bu səhifədən izləyin:'''",
 'recentchanges-feed-description' => 'Vikidəki ən son dəyişiklikləri bu yayım kanalından izləyin.',
 'recentchanges-label-newpage' => 'Bu dəyişiklik yeni səhifə yaratdı',
 'recentchanges-label-minor' => 'Bu kiçik redaktədir',
index 4b99826..0e235c3 100644 (file)
@@ -17,6 +17,7 @@
  * @author Timming
  * @author Рустам Нурыев
  * @author ҒатаУлла
+ * @author Ҡамыр Батыр
  */
 
 $fallback = 'ru';
@@ -24,20 +25,36 @@ $fallback = 'ru';
 $namespaceNames = array(
        NS_MEDIA            => 'Медиа',
        NS_SPECIAL          => 'Ярҙамсы',
-       NS_TALK             => 'Фекер_алышыу',
+       NS_TALK             => 'Фекерләшеү',
        NS_USER             => 'Ҡатнашыусы',
-       NS_USER_TALK        => 'Ҡатнашыусы_м-н_фекер_алышыу',
-       NS_PROJECT_TALK     => '$1_б-са_фекер_алышыу',
+       NS_USER_TALK        => 'Ҡатнашыусы_менән_һөйләшеү',
+       NS_PROJECT_TALK     => '$1_буйынса_фекерләшеү',
        NS_FILE             => 'Рәсем',
-       NS_FILE_TALK        => 'Рәсем_б-са_фекер_алышыу',
+       NS_FILE_TALK        => 'Рәсем_буйынса_фекерләшеү',
        NS_MEDIAWIKI        => 'MediaWiki',
-       NS_MEDIAWIKI_TALK   => 'MediaWiki_б-са_фекер_алышыу',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki_буйынса_фекерләшеү',
        NS_TEMPLATE         => 'Ҡалып',
-       NS_TEMPLATE_TALK    => 'Ҡалып_б-са_фекер_алышыу',
+       NS_TEMPLATE_TALK    => 'Ҡалып_буйынса_фекерләшеү',
        NS_HELP             => 'Белешмә',
-       NS_HELP_TALK        => 'Белешмә_б-са_фекер_алышыу',
-       NS_CATEGORY         => 'Категория',
-       NS_CATEGORY_TALK    => 'Категория_б-са_фекер_алышыу',
+       NS_HELP_TALK        => 'Белешмә_буйынса_фекерләшеү',
+       NS_CATEGORY         => 'Төркөм',
+       NS_CATEGORY_TALK    => 'Төркөм_буйынса_фекерләшеү',
+);
+
+$namespaceAliases = array(
+       'Фекер_алышыу' => NS_TALK,
+       'Ҡатнашыусы_м-н_фекер_алышыу' => NS_USER_TALK,
+       '$1_б-са_фекер_алышыу' => NS_PROJECT_TALK,
+       'Рәсем_б-са_фекер_алышыу' => NS_FILE_TALK,
+       'MediaWiki_б-са_фекер_алышыу' => NS_MEDIAWIKI_TALK,
+       'Ҡалып_б-са_фекер_алышыу' => NS_TEMPLATE_TALK,
+       'Белешмә_б-са_фекер_алышыу' => NS_HELP_TALK,
+       'Категория' => NS_CATEGORY,
+       'Категория_б-са_фекер_алышыу' => NS_CATEGORY_TALK,
+);
+
+$specialPageAliases = array(
+       'Activeusers'               => array( 'ӘүҙемҠатнашыусылар', 'АктивҠатнашыусылар' ),
 );
 
 // Remove Russian aliases
@@ -1344,7 +1361,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|үҙгәртеү|үҙгәртеү}}',
 'recentchanges' => 'Һуңғы үҙгәртеүҙәр',
 'recentchanges-legend' => 'Һуңғы үҙгәртеүҙәр көйләүҙәре',
-'recentchangestext' => '{{grammar:genitive|{{SITENAME}}}}. биттәрендә индерелгән һуңғы үҙгәртеүҙәр исемлеге',
+'recentchanges-summary' => '{{grammar:genitive|{{SITENAME}}}}. биттәрендә индерелгән һуңғы үҙгәртеүҙәр исемлеге',
 'recentchanges-feed-description' => 'Был таҫмалағы һуңғы үҙгәртеүҙәрҙе күҙәтеп барырға',
 'recentchanges-label-newpage' => 'Был үҙгәртеү яңы бит яһаны',
 'recentchanges-label-minor' => 'Был әҙ үҙгәреш',
@@ -1541,7 +1558,7 @@ $1',
 'backend-fail-writetemp' => 'Ваҡытлы файлға яҙып булмай.',
 'backend-fail-closetemp' => 'Ваҡытлы файлды ябып булмай.',
 'backend-fail-read' => '«$1» файлын уҡып булмай.',
-'backend-fail-create' => '«$1» Ñ\84айлÑ\8bн Ñ\8fһап булмай.',
+'backend-fail-create' => '«$1» Ñ\84айлÑ\8bн Ñ\8fÒ\99Ñ\8bп булмай.',
 'backend-fail-readonly' => '$1 һаҡлағысы әлегә уҡыу өсөн генә асыҡ. Сәбәбе: $2',
 'backend-fail-synced' => '$1 файлы эске һаҡлағыста ярашһыҙ хәлдә тора.',
 'backend-fail-connect' => '"$1" һаҡлағысы менән бәйләнеш яһап булманы.',
@@ -3649,14 +3666,14 @@ MediaWiki файҙалы булыр, тигән өмөттә, ләкин БЕР
 'api-error-verification-error' => 'Был файл боҙолған, йәки дөрөҫ булмаған ҡушымтаһы бар.',
 
 # Durations
-'duration-seconds' => 'секунд',
+'duration-seconds' => '$1 {{PLURAL:$1|секунд|секунд}}',
 'duration-minutes' => 'минут',
 'duration-hours' => 'сәғәт',
 'duration-days' => 'көн',
-'duration-weeks' => 'аҙна',
-'duration-years' => 'йыл',
-'duration-decades' => 'декада',
-'duration-centuries' => 'быуат',
-'duration-millennia' => 'меңйыллыҡ',
+'duration-weeks' => '$1 {{PLURAL:$1|аҙна|аҙналар|аҙна}}',
+'duration-years' => '$1 {{PLURAL:$1|йыл|йылдар}}',
+'duration-decades' => '$1 {{PLURAL:$1|ун көнлөк|ун көнлөктәр}}',
+'duration-centuries' => '$1 {{PLURAL:$1|быуат|быуаттар}}',
+'duration-millennia' => '$1 {{PLURAL:$1|меңйыллыҡ|меңйыллыҡтар}}',
 
 );
index 686251c..16c81f5 100644 (file)
@@ -771,7 +771,7 @@ Details stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}}
 'nchanges' => '$1 {{PLURAL:$1|Änderrung|Änderrungen}}',
 'recentchanges' => 'Létzde Änderrungen',
 'recentchanges-legend' => 'Åzoagopziónen',
-'recentchangestext' => "Auf derer Seiten kåst d' létzden Änderrungen auf '''{{SITENAME}}''' nochévavóing.",
+'recentchanges-summary' => "Auf derer Seiten kåst d' létzden Änderrungen auf '''{{SITENAME}}''' nochévavóing.",
 'recentchanges-feed-description' => 'Vafóig mid dém Feed dé létzden Änderrungen in {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Neiche Seiten',
 'recentchanges-label-minor' => 'Kloane Änderrungen',
index bbf9b2b..a2cac90 100644 (file)
@@ -1263,7 +1263,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|تغییر|تغییرات}}',
 'recentchanges' => 'نوکین تغییرات',
 'recentchanges-legend' => 'گزینه ی نوکین تغییرات',
-'recentchangestext' => 'رندگر نوکترین تغییرات ته ویکی تی ای صفحه.',
+'recentchanges-summary' => 'رندگر نوکترین تغییرات ته ویکی تی ای صفحه.',
 'recentchanges-feed-description' => 'آهرین تغییرات ته وی کی چه ای فید رند گر',
 'rcnote' => "جهلء{{PLURAL:$1|هست '''1''' تغییری|هستن آهری '''$1''' تغییرات}} ته آهرین {{PLURAL:$2|روچ|'''$2''' روچان}}, چه$5, $4.",
 'rcnotefrom' => "جهلا تغییرات چه '''$2''' (تا  '''$1''' پیش دارگنت). هست",
index f760a9a..e2b8e2c 100644 (file)
@@ -100,15 +100,15 @@ $messages = array(
 'tog-hideminor' => 'Tagóon an mga saradít na paghirá sa nakakaági pa sanáng pagbabàgo',
 'tog-hidepatrolled' => 'Tagóon an mga saradít na paghirá sa nakakaági pa sanáng pagbabàgo',
 'tog-newpageshidepatrolled' => 'Tagóon an mga pigbabantayán na pahina sa lista nin mga bàgong pahina',
-'tog-extendwatchlist' => 'Palakbangón an lista kan pigbabantayan tangarig mahiling an gabos na angay na pagbabàgo',
-'tog-usenewrc' => 'Paorogón an kaaging pagbabàgo (JavaScript)',
+'tog-extendwatchlist' => 'Palakbangón an taytáy kan babantayan tanganing mahilíng an gabós na angay na pagbàgo',
+'tog-usenewrc' => 'Gamiton an pinauróg na mga nakaaging pagbàgo (kaipohan nin JavaScript)',
 'tog-numberheadings' => 'Tolos na pagbílang sa mga pamayohán',
 'tog-showtoolbar' => 'Ipahilíng an toolbar nin paghirá (JavaScript)',
 'tog-editondblclick' => 'Hirahón sa dobleng paglagatík an mga pahina (JavaScript)',
 'tog-editsection' => 'Togótan an paghirá kan seksyon sa paági kan mga takód na [hirá]',
 'tog-editsectiononrightclick' => 'Togotan an paghirá kan seksyon sa pag-lagatik sa walá sa mga titulo nin seksyon (JavaScript)',
 'tog-showtoc' => 'Ipahilíng an indise kan mga laog (para sa mga pahinang igwang sobra sa 3 pamayohan)',
-'tog-rememberpassword' => 'Giromdomón an mga paglaóg ko sa kompyuter na iní (for a maximum of $1 {{PLURAL:$1|day|days}})',
+'tog-rememberpassword' => 'Giromdomón an mga paglaóg ko sa panlibotlibot na iní (sa nakaaging $1 {{PLURAL:$1|aldaw|mga aldaw}})',
 'tog-watchcreations' => 'Idúgang an mga pahinang ginigíbo ko sa pigbabantayan ko',
 'tog-watchdefault' => 'Idúgang an mga pahinang pighíhirá ko sa pigbabantayan ko',
 'tog-watchmoves' => 'Idúgang an mga pahinang piglilípat ko sa pigbabantayan ko',
@@ -116,7 +116,7 @@ $messages = array(
 'tog-minordefault' => 'Markahán an gabos na paghirá nin sadit na paghirá',
 'tog-previewontop' => 'Ipahilíng an patànaw bàgo an kahon nin paghirá',
 'tog-previewonfirst' => 'Ipahilíng an patànaw sa enot na paghirá',
-'tog-nocache' => 'Pogólon an pag-abang nin mga pahina',
+'tog-nocache' => 'Pugolon an pag-abáng nin mga pahina',
 'tog-enotifwatchlistpages' => 'E-koreohan ako pag pigribayan an pahinang pigbabantayan ko',
 'tog-enotifusertalkpages' => 'E-koreohan ako pag pigribáyan an pahina kan sakóng olay',
 'tog-enotifminoredits' => 'E-koreohan man giraray ako para sa saradit na paghirá kan mga pahina',
@@ -237,6 +237,7 @@ $messages = array(
 'vector-view-view' => 'Basáhon',
 'vector-view-viewsource' => 'Hilingón an ginikánan',
 'actions' => 'Mga paghiro',
+'namespaces' => 'Liang-liang',
 
 'errorpagetitle' => 'Salâ',
 'returnto' => 'Magbwelta sa $1.',
@@ -346,7 +347,7 @@ $messages = array(
 'page-rss-feed' => '"$1" Hungit na RSS',
 'page-atom-feed' => '"$1" Hungit na Atomo',
 'feed-atom' => 'Atomo',
-'red-link-title' => '$1 (dai pa naisusurat)',
+'red-link-title' => '$1 (daí pa naisusurat)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Pahina',
@@ -756,6 +757,8 @@ An ibang mga administrador sa ining wiki pwede pang maghiling kan mga nakatagong
 'nextn' => 'sunód na {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Hilingón ($1 {{int:pipe-separator}} $2) ($3)',
 'searchhelp-url' => 'Help:Mga laog',
+'searchprofile-everything' => 'Gabós',
+'searchprofile-articles-tooltip' => 'Hanapon sa $1',
 'search-result-size' => '$1 ({{PLURAL:$2|1 tatarámon|$2 mga tatarámon}})',
 'search-suggest' => 'Boót mo iyó: $1',
 'search-interwiki-more' => '(dakol pa)',
@@ -870,7 +873,7 @@ An ibang mga administrador sa ining wiki pwede pang maghiling kan mga nakatagong
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|pagbabâgo|mga pagbabâgo}}',
 'recentchanges' => 'Mga nakakaági pa sanáng pagbabàgo',
-'recentchangestext' => 'Hanápon an mga pinahúring pagbabàgo sa wiki digdí sa pahinang iní.',
+'recentchanges-summary' => 'Hanapon an mga pinahuring pagbabâgo sa wiki digdi sa páhinang ini.',
 'recentchanges-feed-description' => 'Hanápon an mga pinakahuring pagbabàgo sa wiki sa hungit na ini.',
 'rcnote' => "Mahihiling sa babâ an {{PLURAL:$1| '''1''' pagbabàgo|'''$1''' pagbabàgo}} sa huring {{PLURAL:$2|na aldaw|'''$2''' na aldaw}}, sa $3.",
 'rcnotefrom' => "Mahihiling sa babâ an mga pagbabàgo poon kan '''$2''' (hasta '''$1''' ipinapahiling).",
@@ -1111,7 +1114,7 @@ An páhina pigkokonsiderar na páhina nin klaripikasyon kun naggagamit ini nin t
 'mostcategories' => 'Mga artikulong may pinaka dakol na kategorya',
 'mostimages' => 'Pinakapigtatakodan na files',
 'mostrevisions' => 'Mga artikulong may pinakadakol na pagpakarháy',
-'prefixindex' => 'Murô nin prefiho',
+'prefixindex' => 'Gabós na pahinang igwáng katakód',
 'shortpages' => 'Haralìpot na pahina',
 'longpages' => 'Mga halabang pahina',
 'deadendpages' => 'Mga pahinang mayong luwasan',
@@ -1431,7 +1434,7 @@ $1",
 
 # What links here
 'whatlinkshere' => 'An nakatakód digdí',
-'whatlinkshere-title' => 'Mga pahinang nakatakod sa $1',
+'whatlinkshere-title' => 'Mga pahinang nakatakód sa $1',
 'whatlinkshere-page' => 'Pahina:',
 'linkshere' => "An mga minasunod na pahina nakatakod sa '''[[:$1]]''':",
 'nolinkshere' => "Mayong pahinang nakatakod sa '''[[:$1]]'''.",
@@ -1495,6 +1498,7 @@ Magkaag nin espisipikong rason (halimbawa, magtao nin ehemplo kan mga páhinang
 'ipblocklist-no-results' => 'Dai nabagat an hinagad na direccion nin IP o ngaran nin paragamit.',
 'blocklink' => 'bagáton',
 'unblocklink' => 'paagihon',
+'change-blocklink' => 'sanglián an pagbagat',
 'contribslink' => 'mga ambág',
 'autoblocker' => 'Enseguidang binagat an saimong direccion nin IP ta kaaaging ginamit ini ni "[[User:$1|$1]]". An rason nin pagbagat ni $1: "$2"',
 'blocklogpage' => 'Usip nin pagbagat',
@@ -1642,13 +1646,13 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'tooltip-pt-anontalk' => 'Mga olay manonongod sa mga hira halî sa ip na ini',
 'tooltip-pt-preferences' => 'Mga kabòtan ko',
 'tooltip-pt-watchlist' => 'Lista nin mga pahina na pigbabantayan an mga pagbabàgo',
-'tooltip-pt-mycontris' => 'Lista kan mga kabòtan ko',
+'tooltip-pt-mycontris' => 'Taytáy kan mga kabòtan ko',
 'tooltip-pt-login' => 'Pigaagda kang maglaog, alagad, bako man ining piriritan.',
 'tooltip-pt-anonlogin' => 'Pig-aagda kang maglaog, alagad, bakô man ining piriritan.',
 'tooltip-pt-logout' => 'Magluwas',
 'tooltip-ca-talk' => 'Olay sa pahina nin laog',
 'tooltip-ca-edit' => 'Pwede mong hirahón ining pahina. Gamiton tabi an patànaw na butones bago an pagtagama.',
-'tooltip-ca-addsection' => 'Magdugang nin komento sa orólay na ini.',
+'tooltip-ca-addsection' => 'Magdugang nin komento sa urulay na iní.',
 'tooltip-ca-viewsource' => 'Sinagangán ining pahina. Mahihilíng mo an ginikanan.',
 'tooltip-ca-history' => 'Mga nakaaging bersyon kaining pahina',
 'tooltip-ca-protect' => 'Protektahán ining pahina',
@@ -1757,7 +1761,7 @@ $1",
 'filedelete-archive-read-only' => 'An direktoryong archibo na "$1" dai nasusuratan kan webserver.',
 
 # Browsing diffs
-'previousdiff' => '← Nakaáging kaibhán',
+'previousdiff' => '← Nakaaging kaibhán',
 'nextdiff' => 'Kaibhán pa→',
 
 # Media information
@@ -1781,11 +1785,11 @@ $1",
 'sp-newimages-showfrom' => 'Hilingón an mga retratong nagpopoon sa $1',
 
 # Bad image list
-'bad_image_list' => 'An pormato iyo an minasunod:
+'bad_image_list' => 'An husay iyó an minasunód:
 
-An mga nakalista sana (mga linyang nagpopoon sa *) an pigkokonsiderar.
-An enot na takod sa linya seguradong sarong takod sa sarong salang file.
-Ano man na takod sa parehong linyang ini pigkokonsiderar na eksepsyon, i.e. mga pahina na may file sa laog nin linya.',
+An mga nakataytáy saná (mga taytáy na nagpopoón sa *) iyó an kaayon.
+An inot na takód sa taytáy kaipohan na saróng takód sa saróng saláng file.
+Anó man na minasunód na takód sa ginikanan na taytáy iyó an kaayon sa mga paglain, i.e. mga pahina na may file na maluwás sa laog kan taytáy.',
 
 # Metadata
 'metadata' => 'Metadatos',
index ecfff6f..bf0d2ec 100644 (file)
@@ -49,7 +49,7 @@ $namespaceNames = array(
        NS_TALK             => 'Размовы',
        NS_USER             => 'Удзельнік',
        NS_USER_TALK        => 'Размовы_з_удзельнікам',
-       NS_PROJECT_TALK     => '$1_размовы',
+       NS_PROJECT_TALK     => 'Размовы_пра_{{GRAMMAR:вінавальны|$1}}',
        NS_FILE             => 'Выява',
        NS_FILE_TALK        => 'Размовы_пра_выяву',
        NS_MEDIAWIKI        => 'MediaWiki',
@@ -62,6 +62,10 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'Размовы_пра_катэгорыю',
 );
 
+$namespaceAliases = array(
+       '$1_размовы' => NS_PROJECT_TALK,
+);
+
 $magicWords = array(
        'img_thumbnail'           => array( '1', 'міні', 'мініяцюра', 'thumbnail', 'thumb' ),
        'img_manualthumb'         => array( '1', 'міні=$1', 'мініяцюра=$1', 'thumbnail=$1', 'thumb=$1' ),
@@ -1353,7 +1357,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|мена|менаў}}',
 'recentchanges' => 'Нядаўнія змяненні',
 'recentchanges-legend' => 'Магчымасці паказу',
-'recentchangestext' => 'Гэта апошнія мены на пляцоўцы {{SITENAME}}.',
+'recentchanges-summary' => 'Гэта апошнія мены на пляцоўцы {{SITENAME}}.',
 'recentchanges-feed-description' => 'Сачыць за найбольш актуальнымі змяненнямі ў віксе праз гэты струмень навін.',
 'recentchanges-label-newpage' => 'Гэтай праўкай была створана новая старонка',
 'recentchanges-label-minor' => 'Гэта дробная па значэнні праўка',
index 7b4661d..149aec0 100644 (file)
@@ -162,7 +162,7 @@ $namespaceNames = array(
        NS_TALK             => 'Абмеркаваньне',
        NS_USER             => 'Удзельнік',
        NS_USER_TALK        => 'Гутаркі_ўдзельніка',
-       NS_PROJECT_TALK     => 'Абмеркаваньне_$1',
+       NS_PROJECT_TALK     => 'Абмеркаваньне_{{GRAMMAR:родны|$1}}',
        NS_FILE             => 'Файл',
        NS_FILE_TALK        => 'Абмеркаваньне_файла',
        NS_MEDIAWIKI        => 'MediaWiki',
@@ -178,6 +178,7 @@ $namespaceNames = array(
 $namespaceAliases = array(
        'Удзельніца' => NS_USER,
        'Гутаркі ўдзельніцы' => NS_USER_TALK,
+       'Абмеркаваньне_$1' => NS_PROJECT_TALK,
        'Выява' => NS_FILE,
        'Абмеркаваньне выявы' => NS_FILE_TALK,
 );
@@ -1205,9 +1206,9 @@ $1",
 'mergelogpagetext' => "Ніжэй знаходзіцца сьпіс апошніх аб'яднаньняў гісторыяў старонак.",
 
 # Diffs
-'history-title' => 'Гісторыя зьменаў старонкі «$1»',
-'difference-title' => 'Розьніца паміж вэрсіямі «$1»',
-'difference-title-multipage' => 'Розьніца паміж старонкамі «$1» і «$2»',
+'history-title' => '$1 — гісторыя зьменаў',
+'difference-title' => '$1: розьніца паміж вэрсіямі',
+'difference-title-multipage' => '«$1» і «$2» — розьніца паміж старонкамі',
 'difference-multipage' => '(Розьніца паміж старонкамі)',
 'lineno' => 'Радок $1:',
 'compareselectedversions' => 'Параўнаць выбраныя вэрсіі',
@@ -1303,6 +1304,7 @@ $1",
 'prefs-beta' => 'Тэставыя магчымасьці',
 'prefs-datetime' => 'Дата і час',
 'prefs-labs' => 'Экспэрымэнтальныя магчымасьці',
+'prefs-user-pages' => 'Старонкі ўдзельніка',
 'prefs-personal' => 'Асабістыя зьвесткі',
 'prefs-rc' => 'Апошнія зьмены',
 'prefs-watchlist' => 'Сьпіс назіраньня',
@@ -1565,7 +1567,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|зьмена|зьмены|зьменаў}}',
 'recentchanges' => 'Апошнія зьмены',
 'recentchanges-legend' => 'Налады апошніх зьменаў',
-'recentchangestext' => 'Сачыце за апошнімі зьменамі ў {{GRAMMAR:месны|{{SITENAME}}}} на гэтай старонцы.',
+'recentchanges-summary' => 'Сачыце за апошнімі зьменамі ў {{GRAMMAR:месны|{{SITENAME}}}} на гэтай старонцы.',
 'recentchanges-feed-description' => 'Сачыце за апошнімі зьменамі ў {{GRAMMAR:месны|{{SITENAME}}}} праз гэтую стужку.',
 'recentchanges-label-newpage' => 'Гэтым рэдагаваньнем была створаная новая старонка',
 'recentchanges-label-minor' => 'Гэтае рэдагаваньне — дробнае',
@@ -1759,14 +1761,15 @@ $1',
 'backend-fail-writetemp' => 'Немагчыма запісаць часовы файл.',
 'backend-fail-closetemp' => 'Немагчыма закрыць часовы файл.',
 'backend-fail-read' => 'Немагчыма прачытаць файл $1.',
-'backend-fail-create' => 'Немагчыма стварыць файл $1.',
-'backend-fail-maxsize' => 'Не атрымалася стварыць файл $1, бо яго памер перавышае {{PLURAL:$2|$2 байт|$2 байта|$2 байтаў}}',
+'backend-fail-create' => 'Немагчыма запісаць файл $1.',
+'backend-fail-maxsize' => 'Не атрымалася запісаць файл $1, бо яго памер перавышае {{PLURAL:$2|$2 байт|$2 байта|$2 байтаў}}.',
 'backend-fail-readonly' => 'Сэрвэр сховішча «$1» у рэжыме толькі чытаньня. Прычына: «$2»',
 'backend-fail-synced' => 'Стан файла «$1» адрозьніваецца ад стану на ўнутраным сэрвэры сховішча',
 'backend-fail-connect' => 'Немагчыма далучыцца да сэрвэра сховішча «$1».',
 'backend-fail-internal' => 'Узьнікла невядомая памылка на сэрвэры сховішча «$1».',
 'backend-fail-contenttype' => 'Немагчыма вызначыць тып зьместу файла, які мусіць быць захаваны ў «$1».',
 'backend-fail-batchsize' => 'Cховішча атрымала блёк з $1 {{PLURAL:$1|файлавай апэрацыі|файлавых апэрацыяў|файлавых апэрацыяў}}; абмежаваньне складае $2 {{PLURAL:$2|апэрацыю|апэрацыі|апэрацыяў}}.',
+'backend-fail-usable' => 'Не атрымалася запісаць файл $1 з-за недастачы правоў ці адсутнасьці дырэкторыяў або кантэйнэраў.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Не атрымалася злучыцца з базай зьвестак журнала для сховішча «$1».',
@@ -1829,7 +1832,6 @@ $1',
 'http-curl-error' => 'Памылка выбаркі URL-адрасу: $1',
 'http-host-unreachable' => 'Немагчыма дасягнуць URL-адрас',
 'http-bad-status' => 'Адбылася памылка пад час выкананьня HTTP-запыту: $1 $2',
-'http-truncated-body' => 'Цела запыту было атрымана часткова.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Немагчыма дасягнуць URL-адрас',
index 0e45667..2737319 100644 (file)
@@ -1175,6 +1175,7 @@ $1",
 
 # Diffs
 'history-title' => 'Преглед на историята на „$1“',
+'difference-title' => 'Разлика между версии на „$1“',
 'difference-multipage' => '(Разлики между страниците)',
 'lineno' => 'Ред $1:',
 'compareselectedversions' => 'Сравнение на избраните версии',
@@ -1529,7 +1530,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|промяна|промени}}',
 'recentchanges' => 'Последни промени',
 'recentchanges-legend' => 'Опции на списъка с последни промени',
-'recentchangestext' => "Проследяване на последните промени в {{SITENAME}}.
+'recentchanges-summary' => "Проследяване на последните промени в {{SITENAME}}.
 
 Легенда: '''тек''' = разлика на текущата версия,
 '''ист''' = история на версиите",
index 703078b..27e6ddf 100644 (file)
@@ -11,6 +11,7 @@
  * @author Ezagren
  * @author J Subhi
  * @author Kaganer
+ * @author Riemogerz
  */
 
 $fallback = 'id';
@@ -52,6 +53,50 @@ $namespaceAliases = array(
        'Pembicaraan_Kategori'  => NS_CATEGORY_TALK,
 );
 
+$specialPageAliases = array(
+       'Activeusers'               => array( 'Pamakai_aktip' ),
+       'Allmessages'               => array( 'Pasan_sistim' ),
+       'Allpages'                  => array( 'Daptar_tungkaran' ),
+       'Ancientpages'              => array( 'Tungkaran_lawas' ),
+       'Badtitle'                  => array( 'Judul_nang_buruk' ),
+       'Blankpage'                 => array( 'Tungkaran_kusung' ),
+       'Booksources'               => array( 'Sumbar_buku' ),
+       'Categories'                => array( 'Daptar_tumbung' ),
+       'ChangeEmail'               => array( 'Ganti_suril' ),
+       'ComparePages'              => array( 'Bandingakan_tungkaran' ),
+       'Confirmemail'              => array( 'Kunpirmasi_suril' ),
+       'Contributions'             => array( 'Kuntribusi_pamakai' ),
+       'CreateAccount'             => array( 'Ulah_akun' ),
+       'Deadendpages'              => array( 'Tungkaran_buntu' ),
+       'DeletedContributions'      => array( 'Kuntribusi_nang_dihapus' ),
+       'EditWatchlist'             => array( 'Babak_daptan_pantauan' ),
+       'Fewestrevisions'           => array( 'Parubahan_tasadikit' ),
+       'Filepath'                  => array( 'Lukasi_barakas' ),
+       'Listadmins'                => array( 'Daptar_pambakal' ),
+       'Listbots'                  => array( 'Daptar_bot' ),
+       'Listfiles'                 => array( 'Daptar_barakas' ),
+       'Listgrouprights'           => array( 'Daptar_hak_kalumpuk' ),
+       'Listredirects'             => array( 'Daptar_paalihan' ),
+       'Listusers'                 => array( 'Daptar_pamakai' ),
+       'Log'                       => array( 'Catatan' ),
+       'Longpages'                 => array( 'Tungkaran_panjang' ),
+       'Mostcategories'            => array( 'Tumbung_tabanyak' ),
+       'Mostlinked'                => array( 'Tungkaran_paling_dipakai' ),
+       'Mostlinkedcategories'      => array( 'Tumbung_paling_dipakai' ),
+       'Mostlinkedtemplates'       => array( 'Citakan_paling_dipakai' ),
+       'Mostrevisions'             => array( 'Paubahan_tabanyak' ),
+       'Movepage'                  => array( 'Pindahakan_tungkaran' ),
+       'Mycontributions'           => array( 'Kuntribusi_ulun' ),
+       'Mypage'                    => array( 'Tungkaran_ulun' ),
+       'Mytalk'                    => array( 'Pamandiran_ulun' ),
+       'Newimages'                 => array( 'Barakas_hanyar' ),
+       'Newpages'                  => array( 'Tungkaran_hanyar' ),
+       'Protectedpages'            => array( 'Tungkaran_nang_dilindungi' ),
+       'Protectedtitles'           => array( 'Judul_nang_dilindungi' ),
+       'Randompage'                => array( 'Tungkaran_babarang' ),
+       'Recentchanges'             => array( 'Paubahan_tahanyar' ),
+);
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Garisi di bawah tautan',
@@ -99,7 +144,7 @@ $messages = array(
 'tog-showhiddencats' => 'Tampaiakan tutumbung tasungkup',
 'tog-norollbackdiff' => 'Kada usah manampaiakan lainan imbah mambulikakan',
 
-'underline-always' => 'Salalu',
+'underline-always' => 'Tarus',
 'underline-never' => 'Kada suah',
 'underline-default' => 'Default Panjalajahan web',
 
@@ -111,18 +156,18 @@ $messages = array(
 'editfont-serif' => 'Tulisan Serif',
 
 # Dates
-'sunday' => 'Ahat',
+'sunday' => 'Ahad',
 'monday' => 'Sanayan',
 'tuesday' => 'Salasa',
 'wednesday' => 'Arba',
-'thursday' => 'Kemés',
+'thursday' => 'Kamis',
 'friday' => 'Jumahat',
 'saturday' => 'Saptu',
 'sun' => 'Aha',
 'mon' => 'San',
 'tue' => 'Sal',
 'wed' => 'Arb',
-'thu' => 'Kem',
+'thu' => 'Kam',
 'fri' => 'Jum',
 'sat' => 'Sap',
 'january' => 'Januari',
@@ -139,7 +184,7 @@ $messages = array(
 'december' => 'Disimbir',
 'january-gen' => 'Januari',
 'february-gen' => 'Pibuari',
-'march-gen' => 'Marat',
+'march-gen' => 'Marit',
 'april-gen' => 'April',
 'may-gen' => 'Mai',
 'june-gen' => 'Juni',
@@ -147,7 +192,7 @@ $messages = array(
 'august-gen' => 'Agustus',
 'september-gen' => 'Siptimbir',
 'october-gen' => 'Uktubir',
-'november-gen' => 'Nopember',
+'november-gen' => 'Nupimbir',
 'december-gen' => 'Disimbir',
 'jan' => 'Jan',
 'feb' => 'Pib',
@@ -437,6 +482,9 @@ Gasan tarjamahan, muhun puruk [//translatewiki.net/wiki/Main_Page?setlang=bjn tr
 'ns-specialprotected' => 'Tungkaran istimiwa kada kawa dibabak.',
 'titleprotected' => "Judul ngini dilindungi matan paulahan ulih [[User:$1|$1]].
 Alasan nang dibariakan adalah ''$2''.",
+'filereadonlyerror' => 'Kada kawa mamudipikasi data "$1" marga repositori data "$2" ada di modus read-only.
+
+Administrator nang takunci nintu manawarakan panjalasan: "$3".',
 
 # Virus scanner
 'virus-badscanner' => "Konpigurasi buruk: pamindai virus kada dipinandui: ''$1''",
@@ -528,6 +576,7 @@ Kadada suril nang akan dikirim maumpati pitur.',
 'invalidemailaddress' => 'Alamat suril ini kada kawa ditarima karana pormat kada sah.
 Muhun buati sabuting alamat suril nang bujur pormatnya atawa puangkan haja isian itu.',
 'cannotchangeemail' => 'Akun alamat suril kada kawa diganti pada wiki ngini.',
+'emaildisabled' => 'Situs naya kada kawa mangirim suril.',
 'accountcreated' => 'Akun diulah',
 'accountcreatedtext' => 'Akun pamakai gasan $1 sudah diulah.',
 'createaccount-title' => 'Paulahan akun gasan {{SITENAME}}',
@@ -724,6 +773,7 @@ Inatakan bahwasa saragam  tungkaran-tungkaran .css wan .js mamuruk aksara halus,
 'updated' => '(Dihanyarakan)',
 'note' => "'''Catatan:'''",
 'previewnote' => "'''Ingatakanlah bahwasa ngini titilikan haja''' Parubahan Pian nang baluman disimpan!",
+'continue-editing' => 'Lanjutakan mambabak',
 'previewconflict' => 'Titilikan ini mancarminakan naskah dalam naskah wilayah atas babakan sawagai mana ini akan mancungul amun disimpan.',
 'session_fail_preview' => "'''Ampun! Kami kada kawa manarusakan babakan Pian karana kahilangan sési data.'''
 Cubai pang sa'asa pulang.
@@ -820,6 +870,11 @@ Babarapa citakan akan kada taumpatakan.",
 'parser-template-loop-warning' => 'Citakan baulang takantup: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Citakan batas kadalaman recursi limpuar ($1)',
 'language-converter-depth-warning' => 'Batas kadalaman pakonversi bahasa limpuar ($1)',
+'node-count-exceeded-category' => 'Tungkaran di mana node-count tarlalui',
+'node-count-exceeded-warning' => 'Tungkaran malabihi node-count',
+'expansion-depth-exceeded-category' => 'Tungkaran dimana kadalaman ikspansi talalui',
+'expansion-depth-exceeded-warning' => 'Tungkaran malabihi kadalaman ikspansi',
+'parser-unstrip-loop-warning' => 'Lingkaran unstrip taditiksi',
 
 # "Undo" feature
 'undo-success' => 'Babakan kawa diwalangi.
@@ -1354,24 +1409,24 @@ Amun Pian mamilih manyadiakan ini, ini akan dipuruk gasan paminanduan kulihan ga
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|parubahan|parubahan}}',
-'recentchanges' => 'Parubahan tahanyar',
-'recentchanges-legend' => 'Pilihan parubahan tahanyar',
-'recentchangestext' => 'Jajak parubahan wiki pahanyarnya pada tungkaran ngini',
+'recentchanges' => 'Paubahan pahanyarnya',
+'recentchanges-legend' => 'Pilihan paubahan pahanyarnya',
+'recentchanges-summary' => 'Jajak parubahan wiki pahanyarnya pada tungkaran ngini',
 'recentchanges-feed-description' => 'Susuri parubahan pahanyarnya dalam wiki di kitihan ini',
 'recentchanges-label-newpage' => 'Babakan ngini maulah sabuah tungkaran hanyar',
 'recentchanges-label-minor' => 'Ngini adalah sabuah babakan sapalih',
 'recentchanges-label-bot' => 'Babakan ngini digawi ulih saikung bot',
 'recentchanges-label-unpatrolled' => "Babakan ngini baluman ta'awasi",
-'rcnote' => "Di bawah ni {{PLURAL:$1|'''1'''|'''$1'''}} parubahan tahanyar dalam {{PLURAL:$2|'''1''' hari|'''$2''' hari}} tauncit, sampai $4 pukul $5.",
+'rcnote' => "Di bawah ni {{PLURAL:$1|'''1'''|'''$1'''}} paubahan pahanyarnya dalam {{PLURAL:$2|'''1''' hari|'''$2''' hari}} tauncit, sampai $4 pukul $5.",
 'rcnotefrom' => "Di bawah ngini parubahan tumatan '''$2''' (ditampaiakan sampai '''$1''' parubahan)",
-'rclistfrom' => 'Tampaiakan parubahan tahanyar matan $1',
+'rclistfrom' => 'Tampaiakan paubahan pahanyarnya matan $1',
 'rcshowhideminor' => '$1 pambabakan sapalih',
 'rcshowhidebots' => '$1 bot',
 'rcshowhideliu' => '$1 pamakai nang babuat di log',
 'rcshowhideanons' => '$1 pamakai kada bangaran',
 'rcshowhidepatr' => "$1 babakan ta'awasi",
 'rcshowhidemine' => '$1 babakan ulun',
-'rclinks' => 'Tampaiakan $1 parubahan tahanyar dalam $2 hari tauncit<br />$3',
+'rclinks' => 'Tampaiakan $1 paubahan pahanyarnya dalam $2 hari tauncit<br />$3',
 'diff' => 'bida',
 'hist' => 'halam',
 'hide' => 'Sungkupakan',
@@ -1814,6 +1869,8 @@ Ngini wayah ini sudah diugahakan ka [[$2]].',
 'wantedpages' => 'Tutungkaran nang dihandaki',
 'wantedpages-badtitle' => 'Judul kada sah dalam setelan kulihan: $1',
 'wantedfiles' => 'Barakas nang dihandaki',
+'wantedfiletext-nocat' => 'Data-data naya dipakai tagal kada ada. Data matan ripusituri asing kawa tadaptar biar haja ada. Satiap 
+File-file berikut digunakan tapi tidak ada. File dari repositori asing dapat terdaftar meskipun ada. Any such false positives will be <del>manyarang</del>.',
 'wantedtemplates' => 'Citakan nang dihandaki',
 'mostlinked' => 'Tutungkaran tatuju tautan pambanyaknya',
 'mostlinkedcategories' => 'Tutumbung tatuju tautan pambanyaknya',
@@ -1891,6 +1948,10 @@ Pian kada mawatasi tiringan lawan mamilih sabuah macam log, ngaran-pamuruk (sans
 'allpagesbadtitle' => 'Judul tungkaran nang dibari kada sah atawa baisi sabuah awalan antar-bahasa atawa antar-wiki.
 Nangini bisa baisi satu atawa labih karaktir nang saharusnya kadada di judul.',
 'allpages-bad-ns' => '{{SITENAME}} kada baisi ngaran-kamar "$1".',
+'allpages-hide-redirects' => 'Sambunyiakan paalihan',
+
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Itihi tahanyar.',
 
 # Special:Categories
 'categories' => 'Tutumbung',
@@ -2639,6 +2700,10 @@ Muhun cubai pulang.',
 'import-logentry-interwiki' => 'ditranswiki $1',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|ralatan|raralatan}} matan $2',
 
+# JavaScriptTest
+'javascripttest' => 'Mantis JavaScript',
+'javascripttest-pagetext-skins' => 'Pilih kulit nang cagar Pian cubai:',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Tungkaran pamakai Pian',
 'tooltip-pt-anonuserpage' => 'Tungkaran pamuruk matan alamat IP Pian mambabak sawagai',
@@ -2670,11 +2735,11 @@ Muhun cubai pulang.',
 'tooltip-n-mainpage-description' => 'Ilangi Tungkaran Tatambaian',
 'tooltip-n-portal' => 'Pasal rangka-gawian, apa nang kawa pian gawi, di mana maugai sasuatu',
 'tooltip-n-currentevents' => 'Gagai panjalasan prihal paristiwa damini',
-'tooltip-n-recentchanges' => 'Daptar parubahan tahanyar dalam wiki',
+'tooltip-n-recentchanges' => 'Daptar paubahan pahanyarnya dalam wiki',
 'tooltip-n-randompage' => 'Tampaiakan sabuah babarang tungkaran',
 'tooltip-n-help' => 'Wadah maugai patulung',
 'tooltip-t-whatlinkshere' => 'Daptar samunyaan tungkaran wiki nang ada tautan ka sia',
-'tooltip-t-recentchangeslinked' => 'Parubahan tahanyar dalam tutungkaran tataut matan tungkaran ngini',
+'tooltip-t-recentchangeslinked' => 'Paubahan pahanyarnya dalam tutungkaran tataut matan tungkaran ngini',
 'tooltip-feed-rss' => 'Kitihan RSS gasan tungkaran ini',
 'tooltip-feed-atom' => 'Kitihan Atum gasan tungkaran ngini',
 'tooltip-t-contributions' => 'Sabuah daptar sumbangan pamakai ngini',
@@ -3584,4 +3649,22 @@ Salain ngitu, Pian kawa mamuruk prmulir nyaman di bawah ngini. Kumintar Pian aka
 'feedback-bugcheck' => 'Harat! hanyar dipariksa bahwasa ngini lainan salah asa [$1 bug nang dipinandui].',
 'feedback-bugnew' => 'Ulun mamariksa. Malapurakan sabuah bug hanyar',
 
+# API errors
+'api-error-missingresult' => 'Kasalahan intarnal: kada kawa manantuakan napakah panyalinan tuntung.',
+'api-error-mustbeloggedin' => 'Pian harus babuat ka log gasan maunggah barakas.',
+'api-error-mustbeposted' => 'Ada bug di parangkat lamah naya; kada mamakai mituda HTTP nang bujur.',
+'api-error-noimageinfo' => 'Paunggahan tuntung, tagal paladen kada mambarii inpurmasi napa haja masalah barakas.',
+'api-error-nomodule' => 'Kasalahan intarnal: kada ada modul unggahan nang ditatapakan.',
+'api-error-ok-but-empty' => 'Kasalahan intarnal: kada ada tanggapan matan paladen.',
+'api-error-overwrite' => 'Kada dibariakan manindihi barakas nang sudah ada.',
+'api-error-stashfailed' => 'Kasalahan intarnal: server gagal manyimban barakas samantara.',
+'api-error-timeout' => 'Peladen kada marispun di waktu nang diharapakan',
+'api-error-unclassified' => 'Tajadi kasalahan nang kada dikatahui.',
+'api-error-unknown-code' => 'Kasalahan kada dipinandui: "$1".',
+'api-error-unknown-error' => 'Kasalahan intarnal: tajadi kasalahan pas mancuba maunggah barakas Pian.',
+'api-error-unknown-warning' => 'Paringatan kada dipinandui: "$1".',
+'api-error-unknownerror' => 'Kasalahan kada dipinandui: "$1".',
+'api-error-uploaddisabled' => 'Paunggahan dinunaktipakan di wiki naya.',
+'api-error-verification-error' => 'Barakas naya kira-kira rusak atawa baisi ikstinsi nang salah.',
+
 );
index ace7aa9..0b46a09 100644 (file)
@@ -454,6 +454,8 @@ $2',
 'filereadonlyerror' => '"$1" ফাইলটিকে পরিবর্তন করা সম্ভব হচ্ছে না কারন "$2" ফাইল রিপোসিটোরি রিড-অনলি-মোডে আছে।
 
 একজন প্রশাসক যিনি এটাকে লকড করেছেন তার যৌক্তিকতা দেওয়া হল: "$3"',
+'invalidtitle-knownnamespace' => 'অবৈধ শিরনাম, যেখানে নামস্থান "$2" এবং লেখা হয়েছে "$3"',
+'invalidtitle-unknownnamespace' => 'অবৈধ শিরনাম, যেখানে ব্যবহৃত হয়েছে অপরিচিত নামস্থান সংখ্যা $1 এবং লেখা হয়েছে "$2"',
 
 # Virus scanner
 'virus-badscanner' => "ভুল কনফিগারেশন: অজ্ঞাত ভাইরাস স্কেনার: ''$1''",
@@ -767,7 +769,8 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 আপনি আরো প্রতিজ্ঞা করছেন যে, এই লেখাগুলো আপনি নিজে লিখেছেন, বা সাধারণের ব্যবহারের জন্য উন্মুক্ত কোন উৎস থেকে সংগ্রহ করেছেন।
 '''স্বত্ব সংরক্ষিত কোন লেখা স্বত্বাধিকারীর অনুমতি ছাড়া এখানে জমা দেবেন না!'''",
 'copyrightwarning2' => "অনুগ্রহ করে লক্ষ করুন: {{SITENAME}}-এর এই ভুক্তিতে আপনার লেখা বা অবদান অন্যান্য ব্যবহারকারীরা পরিবর্তন বা পরিবর্ধন করতে, এমনকি মুছে ফেলতে পারবেন। {{SITENAME}} এ আপনার সকল লেখালেখি/অবদান গনু ফ্রি ডকুমেন্টেশনের ($1) আওতায় বিনামূল্যে প্রাপ্য ও হস্তান্তরযোগ্য। আপনার জমা দেয়া লেখা যে কেউ হৃদয়হীনভাবে সম্পাদনা করতে এবং যথেচ্ছভাবে ব্যবহার করতে পারেন। আপনি যদি এ ব্যাপারে একমত না হন, তাহলে এখানে আপনার লেখা জমা দেবেন না। আপনি আরো প্রতিজ্ঞা করছেন যে, এই লেখাগুলো আপনি নিজে লিখেছেন (তবে কোন মৌলিক গবেষণা নয়) বা সাধারণের ব্যবহারের জন্য উন্মুক্ত কোন উৎস থেকে সংগ্রহ করেছেন। '''স্বত্ব সংরক্ষিত কোন লেখা স্বত্বাধিকারীর অনুমতি ছাড়া এখানে জমা দেবেন না।'''",
-'longpageerror' => " '''ত্রুটি:  আপনার জমা দেয়া টেক্সটের পরিমাণ $1 কিলোবাইট, যা সর্বোচ্চ সীমা $2 কিলোবাইটের চেয়ে বেশি। এটি সংরক্ষণ করা সম্ভব নয়।'''",
+'longpageerror' => "'''ত্রুটি:  আপনার জমা দেয়া টেক্সটের পরিমাণ {{PLURAL:$1|এক কিলোবাইট|$1 কিলোবাইট}}, যা সর্বোচ্চ সীমা {{PLURAL:$2|এক কিলোবাইটের|$2 কিলোবাইটের}} চেয়ে বেশি।'''
+এটি সংরক্ষণ করা সম্ভব নয়।",
 'readonlywarning' => "'''সতর্কীকরণ: রক্ষণাবেক্ষণের জন্য ডাটাবেজ অবরুদ্ধ রাখা হয়েছে, তাই এই মুহূর্তে আপনার সম্পাদনা সংরক্ষণ করতে পারবেন না।
 আপনি চাইলে লেখাটি কাট এবং পেষ্ট করে ভবিষ্যতের জন্য কোন টেক্সট ফাইলে সংরক্ষণ করতে পারেন।'''
 
@@ -880,17 +883,33 @@ $3-এর দেয়া কারণ হল ''$2''",
 'rev-deleted-text-unhide' => "পাতার এই সংস্করণটি '''অপসারিত''' হয়েছে।
 বিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।
 আপনি ইচ্ছা পোষণ করলে [$1 এই সংস্করণটি দেখতে পারেন]।",
+'rev-suppressed-text-unhide' => "পাতার এই সংস্করণটি '''অপসারিত''' হয়েছে।
+বিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।
+আপনি ইচ্ছা পোষণ করলে [$1 এই সংস্করণটি দেখতে পারেন]।",
 'rev-deleted-text-view' => 'পাতার এই সংশোধনটি অপসারণ করা হয়েছে।
 আপনি এটি দেখতে পারেন; এ সংক্রাস্ত বিস্তারিত বিবরণ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} অবলুপ্তি লগে] থাকতে পারে।',
+'rev-suppressed-text-view' => 'পাতার এই সংশোধনটি অপসারণ করা হয়েছে।
+আপনি এটি দেখতে পারেন; এ সংক্রাস্ত বিস্তারিত বিবরণ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} অবলুপ্তি লগে] থাকতে পারে।',
 'rev-deleted-no-diff' => "আপনি পাতার এই পার্থক্যটি দেখতে পারবেন না কারণ একটি সংস্করণ '''অপসারিত''' হয়েছে।
 বিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।",
 'rev-suppressed-no-diff' => "আপনি এই পার্থক্যটি দেখতে পারবেন না কারণ একটি সংস্করণ '''অপসারণ''' করা হয়েছে।",
+'rev-deleted-unhide-diff' => "পার্থক্য তুলনা করা হয়েছে এমন সংস্করণগুলোর কোনো একটি '''অপসারিত''' হয়েছে।
+বিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।
+আপনি ইচ্ছা পোষণ করলে [$1 এই সংস্করণটি দেখতে পারেন]।",
+'rev-suppressed-unhide-diff' => "তুলনা করা হয়েছে এমন সংস্করণগুলোর কোনো একটি '''অপসারিত''' হয়েছে।
+বিস্তারিত কারণ এর [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] পাওয়া যেতে পারে।
+আপনি ইচ্ছা পোষণ করলে [$1 এই সংস্করণটি দেখতে পারেন]।",
+'rev-deleted-diff-view' => "তুলনা করা হয়েছে এমন সংস্করণগুলোর কোনো একটি '''অপসারণ''' করা হয়েছে।
+আপনি এটি দেখতে পারেন; এ সংক্রাস্ত বিস্তারিত বিবরণ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} অবলুপ্তি লগে] থাকতে পারে।",
+'rev-suppressed-diff-view' => "তুলনা করা হয়েছে এমন সংস্করণগুলোর কোনো একটি '''অপসারণ''' করা হয়েছে।
+আপনি এটি দেখতে পারেন; এ সংক্রাস্ত বিস্তারিত বিবরণ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} অবলুপ্তি লগে] থাকতে পারে।",
 'rev-delundel' => 'দেখাও/আড়াল করো',
 'rev-showdeleted' => 'দেখাও',
 'revisiondelete' => 'অবলুপ্ত/পুনঃস্থাপন সংশোধনসমূহ',
 'revdelete-nooldid-title' => 'বেঠিক লক্ষ্য সংশোধন',
 'revdelete-nooldid-text' => 'এই কাজটি সম্পন্ন করার জন্য আপনি কোন লক্ষ্য সংশোধন নির্বাচন করেননি, নির্বাচিত সংশোধন নেই, অথবা আপনি বর্তমান সংশোধন লুকাতে চাইছেন।',
 'revdelete-nologtype-title' => 'কোনো লগ টাইপ দেওয়া হয়নি।',
+'revdelete-nologtype-text' => 'আপনি হয়তো এই কাজটি করার জন্য কোনো লগ নির্ধারণ করেননি।',
 'revdelete-nologid-title' => 'ভুল লগ ভুক্তি',
 'revdelete-no-file' => 'নির্ধারিত ফাইলটি নেই।',
 'revdelete-show-file-submit' => 'হ্যাঁ',
@@ -1295,7 +1314,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|পরিবর্তন|পরিবর্তনসমূহ}}',
 'recentchanges' => 'সাম্প্রতিক পরিবর্তনসমূহ',
 'recentchanges-legend' => 'সাম্প্রতিক পরিবর্তনের পছন্দসমূহ',
-'recentchangestext' => 'এই পাতায় উইকিটির সবচেয়ে সাম্প্রতিক পরিবর্তনগুলি অনুসরণ করুন।',
+'recentchanges-summary' => 'এই পাতায় উইকিটির সবচেয়ে সাম্প্রতিক পরিবর্তনগুলি অনুসরণ করুন।',
 'recentchanges-feed-description' => 'এই ফিডে উইকিটির সবচেয়ে সাম্প্রতিক পরিবর্তনগুলি অনুসরণ করুন।',
 'recentchanges-label-newpage' => 'এই সম্পাদনায় একটি নতুন পাতা তৈরি হয়েছে',
 'recentchanges-label-minor' => 'এটি একটি অনুল্লেখিত সম্পাদনা',
@@ -1453,6 +1472,8 @@ $1",
 
 # File backend
 'backend-fail-delete' => '$1 ফাইলটি অপসারণ সম্ভব নয়।',
+'backend-fail-read' => '$1 ফাইলটি ওপেন করা যাচ্ছে না।',
+'backend-fail-create' => '$1 ফাইলটি তৈরী করা যাচ্ছে না।',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'ফাইলটির জিপ পরীক্ষা করার সময় একটি ত্রুটি দেখা দিয়েছে।',
@@ -1528,6 +1549,7 @@ $1",
 'linkstoimage' => 'নিচের {{PLURAL:$1|টি পাতা|$1টি পাতা}} থেকে এই ফাইলে সংযোগ আছে:',
 'nolinkstoimage' => 'এই ফাইলে সংযোগ করে এমন কোন পাতা নেই।',
 'morelinkstoimage' => 'এই ফাইলের [[Special:WhatLinksHere/$1|আরও লিঙ্ক]] দেখাও।',
+'linkstoimage-redirect' => '$1 (ফাইল পুনঃর্নিদেশ) $2',
 'sharedupload' => 'এই ফাইলটি $1 থেকে নেওয়া হয়েছে এবং এবং অন্যান্য প্রকল্পেও ব্যবহৃত হতে পারে।',
 'sharedupload-desc-here' => 'এই ফাইলটি $1 থেকে এবং অন্যান্য প্রকল্পে ব্যবহৃত হতে পারে।
 এর [$2 ফাইল বিবরণ পৃষ্ঠা] উপর বর্ণনা নিম্নে দেখানো হলো।',
@@ -3141,14 +3163,14 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'intentionallyblankpage' => 'এই পাতাটি ইচ্ছা করে খালি রাখা হয়েছে',
 
 # External image whitelist
-'external_image_whitelist' => '  #এই লাইন ঠিক যেমন আছে<প্রাক> তেমন রাখুন
+'external_image_whitelist' => '  #এই লাইন ঠিক যেমন আছে<প্রাক> তেমন রাখুন<pre>
  #রেগুলার এক্সপ্রেশনের টুকরা নীচে (শুধুমাত্র অংশ / / মধ্যে যে যায়) বসান
 #এইগুলি এক্সটার্নাল (hotlinked) ইমেজের URL-এর সাথে মেলানো হবে
 #যেগুলি মিলবে, সেগুলি চিত্র হিসাবে প্রদর্শিত হবে, অন্যথায় শুধুমাত্র ইমেজ লিঙ্ক প্রদর্শিত হবে
 #যে লাইনের প্রারম্ভে # আছে সেই লাইনগুলি মন্তব্যসমূহ হিসাবে ব্যবহার করা হয়
 #এটি কেস-অসংবেদী
 
-#এই রেখার উপরের regex টুকরা বসান. এই লাইন ঠিক যেমন আছে তেমন রাখুন</ প্রাক>',
+#এই রেখার উপরের regex টুকরা বসান. এই লাইন ঠিক যেমন আছে তেমন রাখুন</pre>',
 
 # Special:Tags
 'tag-filter' => '[[Special:Tags|ট্যাগ]] ছাকনী:',
index 5112c58..aeccfb7 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Bishnupria Manipuri (à¦\87মার à¦ à¦¾à¦°/বিষà§\8dণà§\81পà§\8dরিয়া à¦®à¦£à¦¿à¦ªà§\81রà§\80)
+/** Bishnupria Manipuri (বিষ্ণুপ্রিয়া মণিপুরী)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 0804aed..bcef6e8 100644 (file)
@@ -1475,7 +1475,7 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'nchanges' => '$1 {{PLURAL:$1|kemm|kemm}}',
 'recentchanges' => 'Kemmoù diwezhañ',
 'recentchanges-legend' => "Dibarzhioù ar c'hemmoù diwezhañ",
-'recentchangestext' => "Dre ar bajenn-mañ e c'hallit heuliañ ar c'hemmoù diwezhañ bet degaset d'ar wiki.",
+'recentchanges-summary' => "Dre ar bajenn-mañ e c'hallit heuliañ ar c'hemmoù diwezhañ bet degaset d'ar wiki.",
 'recentchanges-feed-description' => "Heuilhit ar c'hemmoù diwezhañ er wiki el lusk-mañ.",
 'recentchanges-label-newpage' => "Gant ar c'hemm-mañ e vo krouet ur bajenn nevez.",
 'recentchanges-label-minor' => "Ur c'hemm dister eo hemañ",
@@ -1665,13 +1665,13 @@ Ma talc'h ar gudenn, kit e darempred gant [[Special:ListUsers/sysop|merourien ar
 'upload-copy-upload-invalid-domain' => "N'haller ket seveniñ enporzhiadennoù a-bell adalek an domani-mañ.",
 
 # File backend
-'backend-fail-stream' => 'Dibosupl lenn ar restr $1.',
+'backend-fail-stream' => 'Dibosupl eo lenn ar restr $1.',
 'backend-fail-backup' => 'Dibosupl enrollañ ar restr $1.',
 'backend-fail-notexists' => "N'eus ket eus ar restr $1.",
 'backend-fail-hashes' => 'Dibosupl eo bet tapout hacherezh ar restr evit keñveriañ.',
 'backend-fail-notsame' => "Ur restr disheñvel zo e $1 c'hoazh.",
 'backend-fail-invalidpath' => "$1 n'eo ket un hent stokañ reizh.",
-'backend-fail-delete' => 'Dibosupl eo diverkañ a restr $1.',
+'backend-fail-delete' => 'Dibosupl eo diverkañ ar restr $1.',
 'backend-fail-alreadyexists' => 'Ar restr "$1" zo anezhi c\'hoazh.',
 'backend-fail-store' => 'Dibosupl stokañ ar restr $1 e $2.',
 'backend-fail-copy' => 'Dibosupl eilañ ar restr "$1" war-du "$2".',
@@ -1680,7 +1680,7 @@ Ma talc'h ar gudenn, kit e darempred gant [[Special:ListUsers/sysop|merourien ar
 'backend-fail-writetemp' => 'Dibosupl skrivañ er restr padennek.',
 'backend-fail-closetemp' => 'Dibosupl eo serriñ ar restr padennek.',
 'backend-fail-read' => 'Dibosupl lenn ar restr $1.',
-'backend-fail-create' => 'Dibosupl krouiñ ar restr $1.',
+'backend-fail-create' => 'Dibosupl eo krouiñ ar restr $1.',
 'backend-fail-maxsize' => "Dibosupl krouiñ ar restr $1 peogwir eo brasoc'h eget {{PLURAL:$2|un okted|$2 okted}}.",
 'backend-fail-readonly' => 'Emañ an dermenell stokañ "$1" e mod lenn hepken. Setu aze an abeg a oa bet roet : "$2".',
 'backend-fail-synced' => 'Emañ ar restr "$1" en ur stad direizhet en termenelloù stokañ diabarzh',
index 5183c67..88fa547 100644 (file)
@@ -638,8 +638,8 @@ Moguće je da ju je neko drugi već obrisao.',
 'cannotdelete-title' => 'Ne mogu izbrisati stranicu "$1"',
 'badtitle' => 'Loš naslov',
 'badtitletext' => 'Zahtjevani naslov stranice je bio neispravan, prazan ili neispravno povezan međujezički ili interviki naslov.',
-'perfcached' => 'Slijedeći podaci su keširani i možda neće biti u potpunosti ažurirani. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => 'Slijedeći podaci se nalaze u memoriji i zadnji put su ažurirani $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => 'Slijedeći podaci su keširani i možda neće biti u potpunosti ažurirani. Keš sadrži najviše {{PLURAL:$1|jedan rezultat|$1 rezultata}}.',
+'perfcachedts' => 'Slijedeći podaci se nalaze u memoriji i zadnji put su ažurirani $1. Keš sadrži najviše {{PLURAL:$4|jedan rezultat|$4 rezultata}}.',
 'querypage-no-updates' => 'Ažuriranje ove stranice je isključeno.
 Podaci koji se ovdje nalaze ne moraju biti aktuelni.',
 'wrong_wfQuery_params' => 'Netačni parametri za wfQuery()<br />
@@ -963,6 +963,7 @@ Ne zaboravite da imena stranica s .css i .js kodom počinju malim slovom, npr. {
 'note' => "'''Pažnja:'''",
 'previewnote' => "'''Ne zaboravite da je ovo samo pregled'''
 Izmjene stranice nisu još sačuvane!",
+'continue-editing' => 'Nastavi uređivati',
 'previewconflict' => 'Ovaj pregled reflektuje tekst u gornjem polju
 kako će izgledati ako pritisnete "Sačuvaj članak".',
 'session_fail_preview' => "'''Izvinjavamo se! Nismo mogli obraditi vašu izmjenu zbog gubitka podataka o prijavi. Molimo pokušajte ponovno. Ako i dalje ne bude radilo, pokušajte se [[Special:UserLogout|odjaviti]] i ponovno prijaviti.'''",
@@ -1594,7 +1595,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'nchanges' => '$1 {{PLURAL:$1|promjena|promjene|promjena}}',
 'recentchanges' => 'Nedavne izmjene',
 'recentchanges-legend' => 'Postavke nedavnih izmjena',
-'recentchangestext' => 'Na ovoj stranici možete pratiti nedavne izmjene.',
+'recentchanges-summary' => 'Na ovoj stranici možete pratiti nedavne izmjene.',
 'recentchanges-feed-description' => 'Na ovoj stranici možete pratiti nedavne izmjene.',
 'recentchanges-label-newpage' => 'Ovom izmjenom se pravi nova stranica',
 'recentchanges-label-minor' => 'Ovo je mala izmjena',
@@ -2112,6 +2113,7 @@ Možete specificirati prikaz izabiranjem specifičnog spiska, korisničkog imena
 'allpagesbadtitle' => 'Dati naziv stranice je nepravilan ili ima međujezički ili interwiki prefiks.
 Možda sadrži jedan ili više znakova koji se ne mogu koristiti u naslovima.',
 'allpages-bad-ns' => '{{SITENAME}} nema imenski prostor "$1".',
+'allpages-hide-redirects' => 'Sakrij preusmjerenja',
 
 # Special:Categories
 'categories' => 'Kategorije',
index ede25f7..642f0e6 100644 (file)
@@ -99,88 +99,94 @@ $magicWords = array(
 );
 
 $specialPageAliases = array(
+       'Activeusers'               => array( 'Usuaris_actius' ),
        'Allmessages'               => array( 'Missatges', 'MediaWiki' ),
-       'Allpages'                  => array( 'Llista de pàgines' ),
-       'Ancientpages'              => array( 'Pàgines velles' ),
-       'Blankpage'                 => array( 'Pàgina en blanc', 'Blanc' ),
+       'Allpages'                  => array( 'Llista_de_pàgines' ),
+       'Ancientpages'              => array( 'Pàgines_velles' ),
+       'Badtitle'                  => array( 'Títol_incorrecte' ),
+       'Blankpage'                 => array( 'Pàgina_en_blanc', 'Blanc' ),
        'Block'                     => array( 'Bloca' ),
        'Blockme'                   => array( 'Bloca\'m' ),
-       'Booksources'               => array( 'Fonts bibliogràfiques' ),
-       'BrokenRedirects'           => array( 'Redireccions rompudes' ),
-       'ChangePassword'            => array( 'Reinicia contrasenya' ),
-       'Confirmemail'              => array( 'Confirma adreça' ),
+       'Booksources'               => array( 'Fonts_bibliogràfiques' ),
+       'BrokenRedirects'           => array( 'Redireccions_rompudes' ),
+       'ChangeEmail'               => array( 'Canvia_adreça_electrònica' ),
+       'ChangePassword'            => array( 'Reinicia_contrasenya' ),
+       'Confirmemail'              => array( 'Confirma_adreça' ),
        'Contributions'             => array( 'Contribucions' ),
-       'CreateAccount'             => array( 'Crea compte' ),
+       'CreateAccount'             => array( 'Crea_compte' ),
        'Deadendpages'              => array( 'Atzucacs' ),
-       'DeletedContributions'      => array( 'Contribucions esborrades' ),
+       'DeletedContributions'      => array( 'Contribucions_esborrades' ),
        'Disambiguations'           => array( 'Desambiguacions' ),
-       'DoubleRedirects'           => array( 'Redireccions dobles' ),
-       'Emailuser'                 => array( 'Envia missatge' ),
+       'DoubleRedirects'           => array( 'Redireccions_dobles' ),
+       'Emailuser'                 => array( 'Envia_missatge' ),
        'Export'                    => array( 'Exporta' ),
-       'Fewestrevisions'           => array( 'Pàgines menys editades' ),
-       'FileDuplicateSearch'       => array( 'Cerca fitxers duplicats' ),
+       'Fewestrevisions'           => array( 'Pàgines_menys_editades' ),
+       'FileDuplicateSearch'       => array( 'Cerca_fitxers_duplicats' ),
        'Import'                    => array( 'Importa' ),
-       'BlockList'                 => array( 'Usuaris blocats' ),
-       'LinkSearch'                => array( 'Enllaços web', 'Busca enllaços', 'Recerca d\'enllaços web' ),
+       'BlockList'                 => array( 'Usuaris_blocats' ),
+       'LinkSearch'                => array( 'Enllaços_web', 'Busca_enllaços', 'Recerca_d\'enllaços_web' ),
        'Listadmins'                => array( 'Administradors' ),
        'Listbots'                  => array( 'Bots' ),
        'Listfiles'                 => array( 'Imatges' ),
-       'Listgrouprights'           => array( 'Drets dels grups d\'usuaris' ),
+       'Listgrouprights'           => array( 'Drets_dels_grups_d\'usuaris' ),
        'Listredirects'             => array( 'Redireccions' ),
        'Listusers'                 => array( 'Usuaris' ),
-       'Lockdb'                    => array( 'Bloca bd' ),
+       'Lockdb'                    => array( 'Bloca_bd' ),
        'Log'                       => array( 'Registre' ),
-       'Lonelypages'               => array( 'Pàgines òrfenes' ),
-       'Longpages'                 => array( 'Pàgines llargues' ),
-       'MergeHistory'              => array( 'Fusiona historial' ),
-       'MIMEsearch'                => array( 'Cerca MIME' ),
-       'Mostcategories'            => array( 'Pàgines amb més categories' ),
-       'Mostimages'                => array( 'Imatges més útils' ),
-       'Mostlinked'                => array( 'Pàgines més enllaçades' ),
-       'Mostlinkedcategories'      => array( 'Categories més útils' ),
-       'Mostlinkedtemplates'       => array( 'Plantilles més útils' ),
-       'Mostrevisions'             => array( 'Pàgines més editades' ),
+       'Lonelypages'               => array( 'Pàgines_òrfenes' ),
+       'Longpages'                 => array( 'Pàgines_llargues' ),
+       'MergeHistory'              => array( 'Fusiona_historial' ),
+       'MIMEsearch'                => array( 'Cerca_MIME' ),
+       'Mostcategories'            => array( 'Pàgines_amb_més_categories' ),
+       'Mostimages'                => array( 'Imatges_més_útils' ),
+       'Mostlinked'                => array( 'Pàgines_més_enllaçades' ),
+       'Mostlinkedcategories'      => array( 'Categories_més_útils' ),
+       'Mostlinkedtemplates'       => array( 'Plantilles_més_útils' ),
+       'Mostrevisions'             => array( 'Pàgines_més_editades' ),
        'Movepage'                  => array( 'Reanomena' ),
-       'Mycontributions'           => array( 'Contribucions pròpies' ),
-       'Mypage'                    => array( 'Pàgina personal' ),
-       'Mytalk'                    => array( 'Discussió personal' ),
-       'Newimages'                 => array( 'Imatges noves' ),
-       'Newpages'                  => array( 'Pàgines noves' ),
-       'Popularpages'              => array( 'Pàgines populars' ),
+       'Mycontributions'           => array( 'Contribucions_pròpies' ),
+       'Mypage'                    => array( 'Pàgina_personal' ),
+       'Mytalk'                    => array( 'Discussió_personal' ),
+       'Newimages'                 => array( 'Imatges_noves' ),
+       'Newpages'                  => array( 'Pàgines_noves' ),
+       'Popularpages'              => array( 'Pàgines_populars' ),
        'Preferences'               => array( 'Preferències' ),
-       'Prefixindex'               => array( 'Cerca per prefix' ),
-       'Protectedpages'            => array( 'Pàgines protegides' ),
-       'Protectedtitles'           => array( 'Títols protegits' ),
-       'Randompage'                => array( 'Article aleatori', 'Atzar', 'Aleatori' ),
-       'Randomredirect'            => array( 'Redirecció aleatòria' ),
-       'Recentchanges'             => array( 'Canvis recents' ),
+       'Prefixindex'               => array( 'Cerca_per_prefix' ),
+       'Protectedpages'            => array( 'Pàgines_protegides' ),
+       'Protectedtitles'           => array( 'Títols_protegits' ),
+       'Randompage'                => array( 'Article_aleatori', 'Atzar', 'Aleatori' ),
+       'Randomredirect'            => array( 'Redirecció_aleatòria' ),
+       'Recentchanges'             => array( 'Canvis_recents' ),
        'Recentchangeslinked'       => array( 'Seguiment' ),
-       'Revisiondelete'            => array( 'Esborra versió' ),
+       'Revisiondelete'            => array( 'Esborra_versió' ),
+       'RevisionMove'              => array( 'Mou_versió' ),
        'Search'                    => array( 'Cerca' ),
-       'Shortpages'                => array( 'Pàgines curtes' ),
-       'Specialpages'              => array( 'Pàgines especials' ),
+       'Shortpages'                => array( 'Pàgines_curtes' ),
+       'Specialpages'              => array( 'Pàgines_especials' ),
        'Statistics'                => array( 'Estadístiques' ),
-       'Uncategorizedcategories'   => array( 'Categories sense categoria' ),
-       'Uncategorizedimages'       => array( 'Imatges sense categoria' ),
-       'Uncategorizedpages'        => array( 'Pàgines sense categoria' ),
-       'Uncategorizedtemplates'    => array( 'Plantilles sense categoria' ),
+       'Unblock'                   => array( 'Desbloca', 'Desbloqueja' ),
+       'Uncategorizedcategories'   => array( 'Categories_sense_categoria' ),
+       'Uncategorizedimages'       => array( 'Imatges_sense_categoria' ),
+       'Uncategorizedpages'        => array( 'Pàgines_sense_categoria' ),
+       'Uncategorizedtemplates'    => array( 'Plantilles_sense_categoria' ),
        'Undelete'                  => array( 'Restaura' ),
-       'Unlockdb'                  => array( 'Desbloca bd' ),
-       'Unusedcategories'          => array( 'Categories no usades' ),
-       'Unusedimages'              => array( 'Imatges no usades' ),
-       'Unusedtemplates'           => array( 'Plantilles no usades' ),
-       'Unwatchedpages'            => array( 'Pàgines desateses' ),
+       'Unlockdb'                  => array( 'Desbloca_bd' ),
+       'Unusedcategories'          => array( 'Categories_no_usades' ),
+       'Unusedimages'              => array( 'Imatges_no_usades' ),
+       'Unusedtemplates'           => array( 'Plantilles_no_usades' ),
+       'Unwatchedpages'            => array( 'Pàgines_desateses' ),
        'Upload'                    => array( 'Carrega' ),
-       'Userlogin'                 => array( 'Registre i entrada' ),
-       'Userlogout'                => array( 'Finalitza sessió' ),
+       'Userlogin'                 => array( 'Registre_i_entrada' ),
+       'Userlogout'                => array( 'Finalitza_sessió' ),
        'Userrights'                => array( 'Drets' ),
        'Version'                   => array( 'Versió' ),
-       'Wantedcategories'          => array( 'Categories demanades' ),
-       'Wantedfiles'               => array( 'Arxius demanats' ),
-       'Wantedpages'               => array( 'Pàgines demanades' ),
-       'Watchlist'                 => array( 'Llista de seguiment' ),
+       'Wantedcategories'          => array( 'Categories_demanades' ),
+       'Wantedfiles'               => array( 'Arxius_demanats' ),
+       'Wantedpages'               => array( 'Pàgines_demanades' ),
+       'Wantedtemplates'           => array( 'Plantilles_demanades' ),
+       'Watchlist'                 => array( 'Llista_de_seguiment' ),
        'Whatlinkshere'             => array( 'Enllaços' ),
-       'Withoutinterwiki'          => array( 'Sense interwiki' ),
+       'Withoutinterwiki'          => array( 'Sense_interwiki' ),
 );
 
 $linkTrail = "/^((?:[a-zàèéíòóúç·ïü]|'(?!'))+)(.*)$/sDu";
@@ -573,7 +579,7 @@ Els seus motius han estat: «''$2''».",
 'filereadonlyerror' => 'No s\'ha pogut modificar el fitxer «$1» perquè el repositori de fitxers "$2" està en mode només de lectura.
 L\'administrador que l\'ha bloquejat ha donat aquesta explicació: "$3".',
 'invalidtitle-knownnamespace' => "El títol amb l'espai de noms «$2» i text «$3» no és vàlid",
-'invalidtitle-unknownnamespace' => "El títol amb l'espai de noms desconegut de número «$1» i text «$3» no és vàlid",
+'invalidtitle-unknownnamespace' => 'Títol no vàlid amb espai de noms desconegut de número «$1» i text «$2»',
 
 # Virus scanner
 'virus-badscanner' => "Mala configuració: antivirus desconegut: ''$1''",
@@ -948,6 +954,12 @@ Se n'han omès els arguments.",
 'parser-template-loop-warning' => "S'ha detectat un bucle de plantilla: [[$1]]",
 'parser-template-recursion-depth-warning' => "S'ha excedit el límit de recursivitat de plantilles ($1)",
 'language-converter-depth-warning' => "El límit de la profunditat del conversor d'idiomes ha excedit ($1)",
+'node-count-exceeded-category' => "Pàgines on s'ha excedit el recompte de nodes",
+'node-count-exceeded-warning' => 'La pàgina ha excedit el recompte de nodes',
+'expansion-depth-exceeded-category' => "Pàgines on s'ha excedit la profunditat d'expansió",
+'expansion-depth-exceeded-warning' => "La pàgina ha excedit la profunditat d'expansió",
+'parser-unstrip-loop-warning' => "S'ha detectat un bucle no desmuntable",
+'parser-unstrip-recursion-limit' => "S'ha excedit el límit ($1) de recursivitat no desmuntable",
 
 # "Undo" feature
 'undo-success' => "Pot desfer-se la modificació. Si us plau, reviseu la comparació de sota per a assegurar-vos que és el que voleu fer; llavors deseu els canvis per a finalitzar la desfeta de l'edició.",
@@ -1124,9 +1136,9 @@ Assegureu-vos que aquest canvi mantindrà la continuïtat històrica de la pàgi
 'mergelogpagetext' => "A sota hi ha una llista de les fusions més recents d'una pàgina d'historial en una altra.",
 
 # Diffs
-'history-title' => 'Historial de versions de «$1»',
-'difference-title' => 'Diferència entre les revisions de «$1»',
-'difference-title-multipage' => 'Diferència entre les pàgines «$1» i «$2»',
+'history-title' => '$1: Historial de revisions',
+'difference-title' => '$1: Diferència entre les revisions',
+'difference-title-multipage' => '$1 i $2: Diferència entre les pàgines',
 'difference-multipage' => '(Diferència entre pàgines)',
 'lineno' => 'Línia $1:',
 'compareselectedversions' => 'Compara les versions seleccionades',
@@ -1221,6 +1233,7 @@ Assegureu-vos que aquest canvi mantindrà la continuïtat històrica de la pàgi
 'prefs-beta' => 'Característiques beta',
 'prefs-datetime' => 'Data i hora',
 'prefs-labs' => 'Característiques de laboratori',
+'prefs-user-pages' => "Pàgines d'usuari",
 'prefs-personal' => "Perfil d'usuari",
 'prefs-rc' => 'Canvis recents',
 'prefs-watchlist' => 'Llista de seguiment',
@@ -1482,7 +1495,7 @@ Ha de tenir com a molt {{PLURAL:$1|un caràcter|$1 caràcters}}.',
 'nchanges' => '$1 {{PLURAL:$1|canvi|canvis}}',
 'recentchanges' => 'Canvis recents',
 'recentchanges-legend' => 'Opcions de canvis recents',
-'recentchangestext' => 'Seguiu els canvis recents del projecte {{SITENAME}} en aquesta pàgina.',
+'recentchanges-summary' => 'Seguiu els canvis recents del projecte {{SITENAME}} en aquesta pàgina.',
 'recentchanges-feed-description' => 'Segueix en aquest canal els canvis més recents del wiki.',
 'recentchanges-label-newpage' => 'Aquesta modificació inicià una pàgina',
 'recentchanges-label-minor' => 'Aquesta és una modificació menor',
@@ -1669,13 +1682,14 @@ $1',
 'backend-fail-closetemp' => "No s'ha pogut tancar el fitxer temporal.",
 'backend-fail-read' => "No s'ha pogut llegir el fitxer $1.",
 'backend-fail-create' => "No s'ha pogut crear el fitxer $1.",
-'backend-fail-maxsize' => "No s'ha pogut crear el fitxer $1 perquè és més gran que {{PLURAL:$2|un byte|$2 bytes}}.",
+'backend-fail-maxsize' => "No s'ha pogut escriure el fitxer $1 perquè és més gran que {{PLURAL:$2|un byte|$2 bytes}}.",
 'backend-fail-readonly' => "El rerefons d'emmagatzemament «$1» actualment només és de lectura. Es va donar el motiu: «$2»",
 'backend-fail-synced' => "El fitxer «$1» es troba en un estat inconsistent amb els rerefons d'emmagatzemament interns.",
 'backend-fail-connect' => "No s'ha pogut connectar al fitxer de rerefons d'emmagatzemament «$1».",
 'backend-fail-internal' => "S'ha produït un error desconegut en el fitxer de rerefons d'emmagatzemament «$1».",
 'backend-fail-contenttype' => 'No es pot determinar el tipus de contingut del fitxer per emmagatzemar a «$1».',
 'backend-fail-batchsize' => "El rerefons d'emmagatzemament ha rebut un lot {{PLURAL:$1|d'$1 operació|de $1 operacions}} de fitxer; el límit és $2 {{PLURAL:$2|operació|operacions}}.",
+'backend-fail-usable' => "No s'ha pogut escriure el fitxer $1 a causa de permisos insuficients o perquè hi manquen directoris/contenidors.",
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'No es pot connectar amb la base de dades per emmagatzemar el backend "$1".',
@@ -1737,7 +1751,6 @@ Per seguretat, img_auth.php està desactivat.",
 'http-curl-error' => "Error en recuperar l'URL: $1",
 'http-host-unreachable' => "No s'ha pogut accedir a l'URL.",
 'http-bad-status' => 'Hi ha hagut un problema durant la petició HTTP: $1 $2',
-'http-truncated-body' => "El cos de la sol·licitud només s'ha rebut parcialment.",
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => "No s'ha pogut accedir a l'URL",
index 8ebb18e..2988190 100644 (file)
@@ -413,7 +413,7 @@ Siók-mìng: (dāng) = gâe̤ng dék sĭng bēng-buōng bī-piâng, (sèng) = g
 
 # Recent changes
 'recentchanges' => 'Cī-bŏng gì gāi-biéng',
-'recentchangestext' => 'Găk cī hiĕk dŭi-sùi wiki cī-bŏng dék sĭng gì gāi-biéng.',
+'recentchanges-summary' => 'Găk cī hiĕk dŭi-sùi wiki cī-bŏng dék sĭng gì gāi-biéng.',
 'rcnote' => 'Â-dā̤ sê <strong>{{PLURAL:$1|ék|$2}}</strong> gĕ̤ng ī-nô̤i (hiêng-câi sê $3) dék sĭng gì <strong>{{PLURAL:$1|1|$1}}</strong> hâung gāi-biéng.',
 'rclistfrom' => 'Hiēng-sê iù $1 kăi-sṳ̄ gì sĭng gāi-biéng',
 'rcshowhideminor' => '$1 guó-éu siŭ-gāi',
index a816257..187e6d6 100644 (file)
@@ -1410,7 +1410,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|گۆڕانکاری|گۆڕانکاری}}',
 'recentchanges' => 'دوایین گۆڕانکارییەکان',
 'recentchanges-legend' => 'ھەڵبژاردەکانی دوایین گۆڕانکارییەکان',
-'recentchangestext' => 'دÙ\88اÛ\8c Ø¯Ù\88اÛ\8cÛ\8cÙ\86 Ú¯Û\86Ú\95اÙ\86کارÛ\8cÛ\8cÛ\95کاÙ\86Û\8c Ø¦Û\95Ù\85 Ù\88Û\8cÚ©Û\8cÛ\95 Ø¨Ú©Û\95Ù\88Û\95 Ù\84Û\95Ù\85 Ø¦Û\95Ù\85 Ù¾Û\95Ú\95Ù\88Û\95.',
+'recentchanges-summary' => 'Ù\84Û\95Ù\85 Ù¾Û\95Ú\95Û\95دا Ø¨Û\95 Ø¯Ù\88اÛ\8c Ø¯Ù\88اÛ\8cÛ\8cÙ\86 Ú¯Û\86Ú\95اÙ\86کارÛ\8cÛ\8cÛ\95کاÙ\86 Ù\84Û\95Ù\85 Ù\88Û\8cÚ©Û\8cÛ\95دا Ø¨Ú©Û\95Ù\88Û\95.',
 'recentchanges-feed-description' => 'دوای دوایین گۆڕانکارییەکانی ئەم ویکیە بکەوە لەم «فید»ەوە.',
 'recentchanges-label-newpage' => 'ئەم دەستکاریە لاپەڕەیەکی نوێی درووست‌کرد',
 'recentchanges-label-minor' => 'ئەمە دەستکاریەکی بچووکە',
index 88dfc5d..c3abfdc 100644 (file)
@@ -1041,7 +1041,7 @@ $3 мына бу себепни бильдирди: ''$2''",
 'nchanges' => '$1 {{PLURAL:$1|денъишме|денъишме}}',
 'recentchanges' => 'Сонъки денъишмелер',
 'recentchanges-legend' => 'Сонъки денъишмелер сазламалары',
-'recentchangestext' => 'Япылгъан энъ сонъки денъишмелерни бу саифеде корип оласынъыз.',
+'recentchanges-summary' => 'Япылгъан энъ сонъки денъишикликлерни бу саифеде корип оласынъыз.',
 'recentchanges-feed-description' => 'Бу лента вастасынен викиде сонъки денъишмелерни козет.',
 'recentchanges-label-newpage' => 'Бу денъишме янъы бир саифе яратты',
 'recentchanges-label-minor' => 'Бу, кичик бир денъишме',
index b1154ee..84a2ee2 100644 (file)
@@ -1038,7 +1038,7 @@ Eger bildirseñiz, saifelerdeki deñişmelerni kimniñ yapqanını köstermek i
 'nchanges' => '$1 {{PLURAL:$1|deñişme|deñişme}}',
 'recentchanges' => 'Soñki deñişmeler',
 'recentchanges-legend' => 'Soñki deñişmeler sazlamaları',
-'recentchangestext' => 'Yapılğan eñ soñki deñişmelerni bu saifede körip olasıñız.',
+'recentchanges-summary' => 'Yapılğan eñ soñki deñişikliklerni bu saifede körip olasıñız.',
 'recentchanges-feed-description' => 'Bu lenta vastasınen vikide soñki deñişmelerni közet.',
 'recentchanges-label-newpage' => 'Bu deñişme yañı bir saife yarattı',
 'recentchanges-label-minor' => 'Bu, kiçik bir deñişme',
index af5b5aa..2eb3325 100644 (file)
@@ -1299,7 +1299,9 @@ Ujistěte se, že tato změna udrží souvislost a posloupnost verzí v historii
 'mergelogpagetext' => 'Níže je seznam nejnovějších sloučení historie jedné stránky s jinou.',
 
 # Diffs
-'history-title' => 'Historie verzí stránky „$1“',
+'history-title' => '$1: Historie verzí',
+'difference-title' => '$1: Porovnání verzí',
+'difference-title-multipage' => '$1 a $2: Porovnání stránek',
 'difference-multipage' => '(Rozdíly mezi stránkami)',
 'lineno' => 'Řádka $1:',
 'compareselectedversions' => 'Porovnat vybrané verze',
@@ -1395,6 +1397,7 @@ Pokud na začátek dotazu přidáte ''all:'', bude se hledat všude (včetně di
 'prefs-beta' => 'Funkce z betaverze',
 'prefs-datetime' => 'Datum a čas',
 'prefs-labs' => 'Funkce z Labs',
+'prefs-user-pages' => 'Uživatelské stránky',
 'prefs-personal' => 'Údaje o uživateli',
 'prefs-rc' => 'Poslední změny',
 'prefs-watchlist' => 'Sledované stránky',
@@ -1655,7 +1658,7 @@ Tuto operaci nelze vrátit zpět.',
 'nchanges' => '$1 {{PLURAL:$1|změna|změny|změn}}',
 'recentchanges' => 'Poslední změny',
 'recentchanges-legend' => 'Možnosti posledních změn',
-'recentchangestext' => 'Sledujte poslední změny na {{grammar:6sg|{{SITENAME}}}} na této stránce.',
+'recentchanges-summary' => 'Sledujte poslední změny na {{grammar:6sg|{{SITENAME}}}} na této stránce.',
 'recentchanges-feed-description' => 'Na tomto kanále sledujte poslední změny na {{grammar:6sg|{{SITENAME}}}}.',
 'recentchanges-label-newpage' => 'Touto editací byla založena nová stránka',
 'recentchanges-label-minor' => 'Toto je malá editace',
@@ -1854,14 +1857,15 @@ Kontaktuje prosím [[Special:ListUsers/sysop|správce]].',
 'backend-fail-writetemp' => 'Do dočasného souboru nelze zapisovat.',
 'backend-fail-closetemp' => 'Dočasný soubor nelze zavřít.',
 'backend-fail-read' => 'Soubor $1 nelze číst.',
-'backend-fail-create' => 'Soubor $1 nelze vytvořit.',
-'backend-fail-maxsize' => 'Nelze vytvořit soubor $1, protože je větší než {{PLURAL:$2|$2 bajt|$2 bajty|$2 bajtů}}.',
+'backend-fail-create' => 'Nepodařilo se zapsat do souboru $1.',
+'backend-fail-maxsize' => 'Nepodařilo se zapsat do souboru $1, protože je větší než {{PLURAL:$2|$2 bajt|$2 bajty|$2 bajtů}}.',
 'backend-fail-readonly' => 'Koncový úložný systém „$1“ je momentálně pouze pro čtení. Udaným důvodem je: „$2“',
 'backend-fail-synced' => 'Soubor „$1“ je v interních koncových úložných systémech v nekonzistentním stavu',
 'backend-fail-connect' => 'Nepodařilo se připojit ke koncovému úložnému systému „$1“.',
 'backend-fail-internal' => 'V koncovém úložném systému „$1“ došlo k neznámé chybě.',
 'backend-fail-contenttype' => 'Nelze určit typ obsahu souboru k uložení do „$1“.',
 'backend-fail-batchsize' => 'Koncový úložný systém přijal dávku s $1 {{PLURAL:souborovou operací|souborovými operacemi}}; maximum je {{PLURAL:$2|$2}}.',
+'backend-fail-usable' => 'Nepodařilo se zapsat do souboru $1 kvůli nedostatečným oprávněním nebo chybějícím adresářům/kontejnerům.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Nelze se připojit k žurnálové databázi pro koncový úložný systém „$1“.',
@@ -1924,7 +1928,6 @@ Z bezpečnostních důvodů je img_auth.php vypnuto.',
 'http-curl-error' => 'Chyba při čtení z URL: $1',
 'http-host-unreachable' => 'Nepodařilo se kontaktovat URL',
 'http-bad-status' => 'Při provádění HTTP požadavku nastal problém: $1 $2',
-'http-truncated-body' => 'Přijaté tělo požadavku bylo neúplné.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Z URL nelze číst',
index bdc4214..eeef532 100644 (file)
@@ -727,7 +727,7 @@ Mòżesz zezwòlëc jinszim brëkòwniką na łączbã z Tobą przez Twòją sta
 'nchanges' => '{{PLURAL:$1|zjinaka|zjinaczi|zjinaków}}',
 'recentchanges' => 'Slédné edicëje',
 'recentchanges-legend' => 'Òptacëje slédnych zjinaków',
-'recentchangestext' => 'Na starna prezentérëje historëjã slédnëch edicëjów w {{SITENAME}}.',
+'recentchanges-summary' => 'Na starna prezentérëje historëjã slédnëch edicëjów w {{SITENAME}}.',
 'recentchanges-feed-description' => 'Pòdstrzegô slédny zmianë w tim pòwrózkù.',
 'recentchanges-label-minor' => 'To je drobnô edicëjô',
 'rcnote' => "Niżi {{PLURAL:$1|nachôdô sã '''1''' slédnô zjinaka zrobionô|nachôdają sã '''$1''' slédné zjinaczi zrobioné|nachôdô sã '''$1''' slédnych zjinaków zrobionëch}} w {{PLURAL:$2|slédnégò dnia|slédnych '''$2''' dniach}}, rëchùjąc òd $5 dnia $4.",
index 8c88f59..1f28b69 100644 (file)
@@ -503,6 +503,7 @@ Rhoddwyd y rheswm hwn - ''$2''.",
 'filereadonlyerror' => 'Nid oes modd newid y ffeil "$1" oherwydd nad oes modd gwneud dim heblaw darllen storfa\'r ffeil yn "$2" yn unig.
 
 Y rheswm a roddwyd gan y gweinyddwr a roddodd y ffeil dan glo yw "\'\'$3\'\'".',
+'invalidtitle-knownnamespace' => 'Teitl annilys o\'r enw "$3" yn y parth "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Cyfluniad gwael: sganiwr firysau anhysbys: ''$1''",
@@ -924,7 +925,7 @@ Gallwch [[Special:Search|chwilio'r]] wici am dudalennau eraill perthnasol.",
 'rev-deleted-comment' => '(dilëwyd crynodeb y golygiad)',
 'rev-deleted-user' => '(enw defnyddiwr wedi ei ddiddymu)',
 'rev-deleted-event' => '(tynnwyd gweithred y lòg)',
-'rev-deleted-user-contribs' => '[tynnwyd enw defnyddiwr neu gyfeiriad IP i ffwrdd - ni ddangosir y golygiad ar y rhestr cyfraniadau]',
+'rev-deleted-user-contribs' => '[tynnwyd enw defnyddiwr neu gyfeiriad IP i ffwrdd - ni ddangosir y golygiad ar y rhestr gyfraniadau]',
 'rev-deleted-text-permission' => "'''Dilëwyd''' y diwygiad hwn o'r dudalen.
 Mae manylion ar gael yn y [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} lòg dileuon].",
 'rev-deleted-text-unhide' => "Cafodd y diwygiad hwn o'r dudalen ei '''ddileu'''.
@@ -1049,7 +1050,9 @@ Pan yn gwneud hyn dylid sicrhau nad yw dilyniant hanes tudalennau yn cael ei ddi
 'mergelogpagetext' => "Fe ddilyn rhestr o'r achosion diweddaraf o hanes tudalen yn cael ei gyfuno a hanes tudalen arall.",
 
 # Diffs
-'history-title' => "Hanes golygu '$1'",
+'history-title' => '$1: hanes golygu',
+'difference-title' => 'Y gwahaniaeth rhwng diwygiadau o "$1"',
+'difference-title-multipage' => 'Y gwahaniaeth rhwng y tudalennau "$1" a "$2"',
 'difference-multipage' => '(Y gwahaniaeth rhwng y tudalennau)',
 'lineno' => 'Llinell $1:',
 'compareselectedversions' => 'Cymharer y fersiynau dewisedig',
@@ -1408,7 +1411,7 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'nchanges' => '$1 {{PLURAL:$1|newid|newid|newid|newid|newid|o newidiadau}}',
 'recentchanges' => 'Newidiadau diweddar',
 'recentchanges-legend' => "Dewisiadau'r newidiadau diweddar",
-'recentchangestext' => "Dilynwch y newidiadau diweddaraf i'r wici ar y dudalen hon.",
+'recentchanges-summary' => "Dilynwch y newidiadau diweddaraf i'r wici ar y dudalen hon.",
 'recentchanges-feed-description' => "Dilynwch y newidiadau diweddaraf i'r wici gyda'r porthiant hwn.",
 'recentchanges-label-newpage' => 'Dechreuwyd tudalen newydd wrth olygu',
 'recentchanges-label-minor' => 'Mân olygiad',
@@ -1601,7 +1604,7 @@ Os yw'r broblem yn parhau, cysylltwch â [[Special:ListUsers/sysop|gweinyddwr]].
 'backend-fail-writetemp' => "Wedi methu ysgrifennu i'r ffeil dros dro.",
 'backend-fail-closetemp' => "Wedi methu cau'r ffeil dros dro.",
 'backend-fail-read' => 'Wedi methu darllen y ffeil $1.',
-'backend-fail-create' => "Wedi methu creu'r ffeil $1.",
+'backend-fail-create' => "Wedi methu ysgrifennu'r ffeil $1.",
 'backend-fail-maxsize' => "Ni ellid cynhyrchu'r ffeil $1 oherwydd ei bod yn fwy na{{PLURAL:$2||g un beit| $2 feit| $2 beit| $2 beit| $2 beit}}.",
 'backend-fail-readonly' => 'Ar hyn o bryd gellir darllen y storfa "$1" yn unig. Y rheswm dros hyn yw: "\'\'$2\'\'"',
 'backend-fail-synced' => 'Mae\'r ffeil "$1" mewn cyflwr anghyson oddi mewn i\'r storfeydd tu ôl i\'r llenni.',
@@ -1721,8 +1724,8 @@ Pan hidlir y rhestr yn ôl defnyddiwr, yr unig rhai a ddangosir o blith y ffeili
 'filehist-missing' => 'Y ffeil yn eisiau',
 'imagelinks' => 'Defnydd y ffeil',
 'linkstoimage' => "Mae'r {{PLURAL:$1|tudalen|dudalen|tudalennau|tudalennau|tudalennau|tudalennau}} isod yn cysylltu i'r ddelwedd hon:",
-'linkstoimage-more' => "Mae rhagor na $1 {{PLURAL:$1|tudalen yn|dudalen yn|dudalen yn|o dudalennau'n|o dudalennau'n|o dudalennau'n}} cysylltu at y ffeil hon.
-Mae'r rhestr canlynol yn dangos y {{PLURAL:$1|$1 cysylltiad cyntaf}} at y ffeil hon yn unig. Mae [[Special:WhatLinksHere/$2|rhestr lawn]] ar gael.",
+'linkstoimage-more' => "Mae mwy na $1 {{PLURAL:$1|tudalen yn|dudalen yn|dudalen yn|o dudalennau'n|o dudalennau'n|o dudalennau'n}} cysylltu at y ffeil hon.
+Mae'r rhestr ganlynol yn dangos y {{PLURAL:$1|$1 cysylltiad cyntaf}} at y ffeil hon yn unig. Mae [[Special:WhatLinksHere/$2|rhestr lawn]] ar gael.",
 'nolinkstoimage' => 'Nid oes cyswllt ar unrhyw dudalen yn arwain at y ffeil hon.',
 'morelinkstoimage' => 'Gweld [[Special:WhatLinksHere/$1|rhagor o gysylltiadau]] at y ffeil hon.',
 'linkstoimage-redirect' => "$1 (tudalen ffeil sy'n ailgyfeirio) $2",
@@ -2804,7 +2807,7 @@ Gellir ychwanegu rheswm dros y dadwneud yn y crynodeb.',
 # Spam protection
 'spamprotectiontitle' => 'Hidlydd amddiffyn rhag sbam',
 'spamprotectiontext' => 'Ataliwyd y dudalen rhag ei rhoi ar gadw gan yr hidlydd sbam.
-Achos hyn yn fwy na thebyg yw presenoldeb cysylltiad i wefan ar y rhestr gwaharddedig.',
+Achos hyn yn fwy na thebyg yw presenoldeb cysylltiad i wefan ar y rhestr waharddedig.',
 'spamprotectionmatch' => "Dyma'r testun gyneuodd ein hidlydd amddiffyn rhag sbam: $1",
 'spambot_username' => 'Teclyn clirio sbam MediaWiki',
 'spam_reverting' => "Yn troi nôl i'r diwygiad diweddaraf sydd ddim yn cynnwys cysylltiadau i $1",
@@ -2882,7 +2885,7 @@ Mae'n bosib y bydd eich cyfrifiadur yn cael ei danseilio wrth ddefnyddio'r ffeil
 
 # Special:NewFiles
 'newimages' => 'Oriel y ffeiliau newydd',
-'imagelisttext' => "Isod mae rhestr {{PLURAL:$1|gwag o ffeiliau|o '''$1''' ffeil|o '''$1''' ffeil wedi'u trefnu $2|o '''$1''' ffeil wedi'u trefnu $2|o '''$1''' o ffeiliau wedi'u trefnu $2|o '''$1''' o ffeiliau wedi'u trefnu $2|}}.",
+'imagelisttext' => "Isod mae rhestr {{PLURAL:$1|wag o ffeiliau|o '''$1''' ffeil|o '''$1''' ffeil wedi'u trefnu $2|o '''$1''' ffeil wedi'u trefnu $2|o '''$1''' o ffeiliau wedi'u trefnu $2|o '''$1''' o ffeiliau wedi'u trefnu $2|}}.",
 'newimages-summary' => "Mae'r dudalen arbennig hon yn dangos y ffeiliau a uwchlwythwyd yn ddiweddar.",
 'newimages-legend' => 'Hidlo',
 'newimages-label' => "Enw'r ffeil (neu ran ohono):",
index 8676e06..aaffafc 100644 (file)
@@ -1125,7 +1125,9 @@ Vær opmæksom på at bevare kontinuiteten i sidehistorikken.
 'mergelogpagetext' => 'Nedenfor vises en liste med de nyeste sammenfletninger af en sides historik i en anden.',
 
 # Diffs
-'history-title' => 'Versionshistorik for "$1"',
+'history-title' => '$1: Versionshistorik',
+'difference-title' => 'Forskel mellem versioner af "$1"',
+'difference-title-multipage' => 'Forskel mellem siderne "$1" og "$2"',
 'difference-multipage' => '(Forskel mellem sider)',
 'lineno' => 'Linje $1:',
 'compareselectedversions' => 'Sammenlign valgte versioner',
@@ -1221,6 +1223,7 @@ Du kan prøve at bruge \"all:\" som præfiks for at søge i alt indhold (inkl. d
 'prefs-beta' => 'Betafunktioner',
 'prefs-datetime' => 'Dato og klokkeslæt',
 'prefs-labs' => 'Testfunktioner',
+'prefs-user-pages' => 'Brugerside',
 'prefs-personal' => 'Brugerdata',
 'prefs-rc' => 'Seneste ændringer',
 'prefs-watchlist' => 'Overvågningsliste',
@@ -1482,7 +1485,7 @@ Hvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit
 'nchanges' => '$1 {{PLURAL:$1|ændring|ændringer}}',
 'recentchanges' => 'Seneste ændringer',
 'recentchanges-legend' => 'Indstillinger for seneste ændringer',
-'recentchangestext' => "På denne side kan du følge de seneste ændringer på '''{{SITENAME}}'''.",
+'recentchanges-summary' => "På denne side kan du følge de seneste ændringer på '''{{SITENAME}}'''.",
 'recentchanges-feed-description' => 'Med dette feed kan du følge de seneste ændringer på {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Denne redigering oprettede en ny side',
 'recentchanges-label-minor' => 'Dette er en mindre ændring',
@@ -1670,8 +1673,8 @@ Informer venligst en [[Special:ListUsers/sysop|systemadministrator]].',
 'backend-fail-writetemp' => 'Kunne ikke skrive til midlertidig fil.',
 'backend-fail-closetemp' => 'Kunne ikke lukke midlertidig fil.',
 'backend-fail-read' => 'Kunne ikke læse filen $1.',
-'backend-fail-create' => 'Kunne ikke oprette filen $1.',
-'backend-fail-maxsize' => 'Kunne ikke oprette filen $1, da den er større end {{PLURAL:$2|$2 byte|$2 bytes}}.',
+'backend-fail-create' => 'Kunne ikke gemme filen $1.',
+'backend-fail-maxsize' => 'Kunne ikke gemme filen $1, da den er større end {{PLURAL:$2|en byte|$2 bytes}}.',
 'backend-fail-readonly' => 'Lagrings-backend "$1" er i øjeblikket skrivebeskyttet. Den angivne begrundelse var: " $2 "',
 'backend-fail-synced' => 'Filen "$1" er i en inkonsistent tilstand inden for de interne lagringsbackends',
 'backend-fail-connect' => 'Kunne ikke forbinde til lagringsbackend "$1".',
index 9375a8d..5b9d039 100644 (file)
@@ -44,6 +44,7 @@
  * @author Purodha
  * @author Raimond Spekking (Raymond) <raimond.spekking@gmail.com> since January 2007
  * @author Red Baron
+ * @author Reedy
  * @author Remember the dot
  * @author Revolus
  * @author Rillke
@@ -119,12 +120,12 @@ $specialPageAliases = array(
        'Block'                     => array( 'Sperren' ),
        'Blockme'                   => array( 'Proxy-Sperre' ),
        'Booksources'               => array( 'ISBN-Suche' ),
-       'BrokenRedirects'           => array( 'Kaputte_Weiterleitungen' ),
+       'BrokenRedirects'           => array( 'Defekte_Weiterleitungen', 'Kaputte_Weiterleitungen' ),
        'Categories'                => array( 'Kategorien' ),
        'ChangeEmail'               => array( 'E-Mail-Adresse_ändern' ),
        'ChangePassword'            => array( 'Passwort_ändern', 'Passwort_zurücksetzen' ),
        'ComparePages'              => array( 'Seiten_vergleichen' ),
-       'Confirmemail'              => array( 'E-Mail_bestaetigen', 'E-Mail_bestätigen' ),
+       'Confirmemail'              => array( 'E-Mail_bestätigen', 'E-Mail_bestaetigen' ),
        'Contributions'             => array( 'Beiträge' ),
        'CreateAccount'             => array( 'Benutzerkonto_anlegen' ),
        'Deadendpages'              => array( 'Sackgassenseiten' ),
@@ -132,14 +133,15 @@ $specialPageAliases = array(
        'Disambiguations'           => array( 'Begriffsklärungsverweise' ),
        'DoubleRedirects'           => array( 'Doppelte_Weiterleitungen' ),
        'EditWatchlist'             => array( 'Beobachtungsliste_bearbeiten' ),
-       'Emailuser'                 => array( 'E-Mail' ),
+       'Emailuser'                 => array( 'E-Mail_senden', 'Mailen', 'E-Mail' ),
        'Export'                    => array( 'Exportieren' ),
        'Fewestrevisions'           => array( 'Wenigstbearbeitete_Seiten' ),
        'FileDuplicateSearch'       => array( 'Dateiduplikatsuche', 'Datei-Duplikat-Suche' ),
        'Filepath'                  => array( 'Dateipfad' ),
        'Import'                    => array( 'Importieren' ),
-       'Invalidateemail'           => array( 'E-Mail_nicht_bestaetigen', 'E-Mail_nicht_bestätigen' ),
-       'BlockList'                 => array( 'Liste_der_Sperren', 'Gesperrte_IP-Adressen', 'Gesperrte_IPs' ),
+       'Invalidateemail'           => array( 'E-Mail_nicht_bestätigen', 'E-Mail_nicht_bestaetigen' ),
+       'JavaScriptTest'            => array( 'JavaScript-Test' ),
+       'BlockList'                 => array( 'Liste_der_Sperren', 'Gesperrte_IP-Adressen', 'Gesperrte_IPs', 'Sperrliste' ),
        'LinkSearch'                => array( 'Weblinksuche', 'Weblink-Suche' ),
        'Listadmins'                => array( 'Administratoren' ),
        'Listbots'                  => array( 'Bots' ),
@@ -201,9 +203,9 @@ $specialPageAliases = array(
        'Userlogout'                => array( 'Abmelden' ),
        'Userrights'                => array( 'Benutzerrechte' ),
        'Wantedcategories'          => array( 'Gewünschte_Kategorien' ),
-       'Wantedfiles'               => array( 'Fehlende_Dateien' ),
+       'Wantedfiles'               => array( 'Gewünschte_Dateien', 'Fehlende_Dateien' ),
        'Wantedpages'               => array( 'Gewünschte_Seiten' ),
-       'Wantedtemplates'           => array( 'Fehlende_Vorlagen' ),
+       'Wantedtemplates'           => array( 'Gewünschte_Vorlagen', 'Fehlende_Vorlagen' ),
        'Watchlist'                 => array( 'Beobachtungsliste' ),
        'Whatlinkshere'             => array( 'Linkliste', 'Verweisliste' ),
        'Withoutinterwiki'          => array( 'Fehlende_Interwikis' ),
@@ -244,12 +246,12 @@ $dateFormats = array(
 
 $magicWords = array(
        'redirect'                => array( '0', '#WEITERLEITUNG', '#REDIRECT' ),
-       'notoc'                   => array( '0', '__KEIN_INHALTSVERZEICHNIS__', '__NOTOC__' ),
-       'nogallery'               => array( '0', '__KEINE_GALERIE__', '__NOGALLERY__' ),
+       'notoc'                   => array( '0', '__KEIN_INHALTSVERZEICHNIS__', '__KEININHALTSVERZEICHNIS__', '__NOTOC__' ),
+       'nogallery'               => array( '0', '__KEINE_GALERIE__', '__KEINEGALERIE__', '__NOGALLERY__' ),
        'forcetoc'                => array( '0', '__INHALTSVERZEICHNIS_ERZWINGEN__', '__FORCETOC__' ),
        'toc'                     => array( '0', '__INHALTSVERZEICHNIS__', '__TOC__' ),
        'noeditsection'           => array( '0', '__ABSCHNITTE_NICHT_BEARBEITEN__', '__NOEDITSECTION__' ),
-       'noheader'                => array( '0', '__KEINKOPF__', '__NOHEADER__' ),
+       'noheader'                => array( '0', '__KEINKOPF__', '__KEIN_HEADER__', '__KEIN_KOPF__', '__KEINHEADER__', '__NOHEADER__' ),
        'currentmonth'            => array( '1', 'JETZIGER_MONAT', 'JETZIGER_MONAT_2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentmonth1'           => array( '1', 'JETZIGER_MONAT_1', 'CURRENTMONTH1' ),
        'currentmonthname'        => array( '1', 'JETZIGER_MONATSNAME', 'CURRENTMONTHNAME' ),
@@ -298,19 +300,26 @@ $magicWords = array(
        'subjectpagename'         => array( '1', 'HAUPTSEITE', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
        'subjectpagenamee'        => array( '1', 'HAUPTSEITE_URL', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
        'subst'                   => array( '0', 'ERS:', 'SUBST:' ),
-       'img_thumbnail'           => array( '1', 'miniatur', 'thumbnail', 'thumb' ),
-       'img_manualthumb'         => array( '1', 'miniatur=$1', 'thumbnail=$1', 'thumb=$1' ),
+       'safesubst'               => array( '0', 'SICHER_ERS:', 'SICHERERS:', 'SAFESUBST:' ),
+       'img_thumbnail'           => array( '1', 'miniatur', 'mini', 'thumbnail', 'thumb' ),
+       'img_manualthumb'         => array( '1', 'miniatur=$1', 'mini=$1', 'thumbnail=$1', 'thumb=$1' ),
        'img_right'               => array( '1', 'rechts', 'right' ),
        'img_left'                => array( '1', 'links', 'left' ),
        'img_none'                => array( '1', 'ohne', 'none' ),
        'img_center'              => array( '1', 'zentriert', 'center', 'centre' ),
        'img_framed'              => array( '1', 'gerahmt', 'framed', 'enframed', 'frame' ),
        'img_frameless'           => array( '1', 'rahmenlos', 'frameless' ),
-       'img_page'                => array( '1', 'seite=$1', 'seite $1', 'page=$1', 'page $1' ),
+       'img_page'                => array( '1', 'seite=$1', 'seite_$1', 'page=$1', 'page $1' ),
        'img_upright'             => array( '1', 'hochkant', 'hochkant=$1', 'hochkant $1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'              => array( '1', 'rand', 'border' ),
-       'img_sub'                 => array( '1', 'tiefgestellt', 'sub' ),
-       'img_super'               => array( '1', 'hochgestellt', 'super', 'sup' ),
+       'img_baseline'            => array( '1', 'grundlinie', 'baseline' ),
+       'img_sub'                 => array( '1', 'tiefgestellt', 'tief', 'sub' ),
+       'img_super'               => array( '1', 'hochgestellt', 'hoch', 'super', 'sup' ),
+       'img_top'                 => array( '1', 'oben', 'top' ),
+       'img_text_top'            => array( '1', 'text-oben', 'text-top' ),
+       'img_middle'              => array( '1', 'mitte', 'middle' ),
+       'img_bottom'              => array( '1', 'unten', 'bottom' ),
+       'img_text_bottom'         => array( '1', 'text-unten', 'text-bottom' ),
        'img_link'                => array( '1', 'verweis=$1', 'link=$1' ),
        'img_alt'                 => array( '1', 'alternativtext=$1', 'alt=$1' ),
        'int'                     => array( '0', 'NACHRICHT:', 'INT:' ),
@@ -318,12 +327,14 @@ $magicWords = array(
        'ns'                      => array( '0', 'NR:', 'NS:' ),
        'nse'                     => array( '0', 'NR_URL:', 'NSE:' ),
        'localurl'                => array( '0', 'LOKALE_URL:', 'LOCALURL:' ),
+       'localurle'               => array( '0', 'LOKALE_URL_C:', 'LOCALURLE:' ),
        'articlepath'             => array( '0', 'ARTIKELPFAD', 'ARTICLEPATH' ),
-       'pageid'                  => array( '0', 'SEITENID', 'PAGEID' ),
        'scriptpath'              => array( '0', 'SKRIPTPFAD', 'SCRIPTPATH' ),
-       'stylepath'               => array( '0', 'STYLEPFAD', 'STYLEPATH' ),
+       'stylepath'               => array( '0', 'STILPFAD', 'STYLEPFAD', 'STYLEPATH' ),
        'grammar'                 => array( '0', 'GRAMMATIK:', 'GRAMMAR:' ),
        'gender'                  => array( '0', 'GESCHLECHT:', 'GENDER:' ),
+       'notitleconvert'          => array( '0', '__KEINE_TITELKONVERTIERUNG__', '__NOTITLECONVERT__', '__NOTC__' ),
+       'nocontentconvert'        => array( '0', '__KEINE_INHALTSKONVERTIERUNG__', '__NOCONTENTCONVERT__', '__NOCC__' ),
        'currentweek'             => array( '1', 'JETZIGE_KALENDERWOCHE', 'CURRENTWEEK' ),
        'currentdow'              => array( '1', 'JETZIGER_WOCHENTAG_ZAHL', 'CURRENTDOW' ),
        'localweek'               => array( '1', 'LOKALE_KALENDERWOCHE', 'LOCALWEEK' ),
@@ -337,7 +348,9 @@ $magicWords = array(
        'revisiontimestamp'       => array( '1', 'REVISIONSZEITSTEMPEL', 'REVISIONTIMESTAMP' ),
        'revisionuser'            => array( '1', 'REVISIONSBENUTZER', 'REVISIONUSER' ),
        'fullurl'                 => array( '0', 'VOLLSTÄNDIGE_URL:', 'FULLURL:' ),
+       'fullurle'                => array( '0', 'VOLLSTÄNDIGE_URL_C:', 'FULLURLE:' ),
        'canonicalurl'            => array( '0', 'KANONISCHE_URL:', 'CANONICALURL:' ),
+       'canonicalurle'           => array( '0', 'KANONISCHE_URL_C:', 'CANONICALURLE:' ),
        'lcfirst'                 => array( '0', 'INITIAL_KLEIN:', 'LCFIRST:' ),
        'ucfirst'                 => array( '0', 'INITIAL_GROSS:', 'UCFIRST:' ),
        'lc'                      => array( '0', 'KLEIN:', 'LC:' ),
@@ -348,13 +361,13 @@ $magicWords = array(
        'nonewsectionlink'        => array( '1', '__KEIN_NEUER_ABSCHNITTSLINK__', '__KEIN_PLUS_LINK__', '__NONEWSECTIONLINK__' ),
        'currentversion'          => array( '1', 'JETZIGE_VERSION', 'CURRENTVERSION' ),
        'urlencode'               => array( '0', 'URLENKODIERT:', 'URLENCODE:' ),
-       'anchorencode'            => array( '0', 'SPRUNGMARKEENKODIERT:', 'ANCHORENCODE' ),
+       'anchorencode'            => array( '0', 'ANKERENKODIERT:', 'SPRUNGMARKEENKODIERT:', 'ANCHORENCODE' ),
        'currenttimestamp'        => array( '1', 'JETZIGER_ZEITSTEMPEL', 'CURRENTTIMESTAMP' ),
        'localtimestamp'          => array( '1', 'LOKALER_ZEITSTEMPEL', 'LOCALTIMESTAMP' ),
        'directionmark'           => array( '1', 'TEXTAUSRICHTUNG', 'DIRECTIONMARK', 'DIRMARK' ),
        'language'                => array( '0', '#SPRACHE:', '#LANGUAGE:' ),
        'contentlanguage'         => array( '1', 'INHALTSSPRACHE', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
-       'pagesinnamespace'        => array( '1', 'SEITEN_IM_NAMENSRAUM:', 'SEITEN_NR:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
+       'pagesinnamespace'        => array( '1', 'SEITEN_IM_NAMENSRAUM:', 'SEITEN_IN_NR:', 'SEITEN_NR:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
        'numberofadmins'          => array( '1', 'ADMINANZAHL', 'NUMBEROFADMINS' ),
        'formatnum'               => array( '0', 'ZAHLENFORMAT', 'FORMATNUM' ),
        'padleft'                 => array( '0', 'FÜLLENLINKS', 'PADLEFT' ),
@@ -362,6 +375,7 @@ $magicWords = array(
        'special'                 => array( '0', 'spezial', 'special' ),
        'defaultsort'             => array( '1', 'SORTIERUNG:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                => array( '0', 'DATEIPFAD:', 'FILEPATH:' ),
+       'tag'                     => array( '0', 'markierung', 'tag' ),
        'hiddencat'               => array( '1', '__VERSTECKTE_KATEGORIE__', '__WARTUNGSKATEGORIE__', '__HIDDENCAT__' ),
        'pagesincategory'         => array( '1', 'SEITEN_IN_KATEGORIE', 'SEITEN_KAT', 'PAGESINCATEGORY', 'PAGESINCAT' ),
        'pagesize'                => array( '1', 'SEITENGRÖSSE', 'PAGESIZE' ),
@@ -371,6 +385,10 @@ $magicWords = array(
        'staticredirect'          => array( '1', '__PERMANENTE_WEITERLEITUNG__', '__STATICREDIRECT__' ),
        'protectionlevel'         => array( '1', 'SCHUTZSTATUS', 'PROTECTIONLEVEL' ),
        'formatdate'              => array( '0', 'DATUMSFORMAT', 'formatdate', 'dateformat' ),
+       'url_path'                => array( '0', 'PFAD', 'PATH' ),
+       'url_query'               => array( '0', 'ABFRAGE', 'QUERY' ),
+       'defaultsort_noerror'     => array( '0', 'keinfehler', 'noerror' ),
+       'defaultsort_noreplace'   => array( '0', 'keineersetzung', 'noreplace' ),
 );
 
 $imageFiles = array(
@@ -739,8 +757,9 @@ Möglicherweise wurde sie bereits von jemand anderem gelöscht.',
 'badtitle' => 'Ungültiger Titel',
 'badtitletext' => 'Der Titel der angeforderten Seite ist ungültig, leer oder ein ungültiger Sprachlink von einem anderen Wiki.',
 'perfcached' => 'Die folgenden Daten stammen aus dem Cache und sind möglicherweise nicht aktuell. Maximal {{PLURAL:$1|ein Ergebnis ist|$1 Ergebnisse sind}} im Cache verfügbar.',
-'perfcachedts' => 'Diese Daten stammen aus dem Cache. Der Zeitpunkt der letzten Aktualisierung: $1. Maximal {{PLURAL:$4|ein Ergebnis ist|$4 Ergebnisse sind}} im Cache verfügbar.',
-'querypage-no-updates' => "'''Die Aktualisierungsfunktion dieser Seite ist zurzeit deaktiviert. Die Daten werden bis auf Weiteres nicht erneuert.'''",
+'perfcachedts' => 'Diese Daten stammen aus dem Cache. Der Zeitpunkt der letzten Aktualisierung: $2, $3 Uhr. Maximal {{PLURAL:$4|ein Ergebnis ist|$4 Ergebnisse sind}} im Cache verfügbar.',
+'querypage-no-updates' => 'Die Aktualisierungsfunktion dieser Seite ist zurzeit deaktiviert.
+Die Daten werden bis auf Weiteres nicht erneuert.',
 'wrong_wfQuery_params' => 'Falsche Parameter für wfQuery()<br />
 Funktion: $1<br />
 Abfrage: $2',
@@ -824,7 +843,7 @@ Es muss sichergestellt sein, dass Cookies aktiviert sind. Danach diese Seite ern
 Überprüfe die Schreibweise (Groß-/Kleinschreibung beachten) oder [[Special:UserLogin/signup|melde dich als neuer Benutzer an]].',
 'nosuchusershort' => 'Der Benutzername „$1“ ist nicht vorhanden. Bitte überprüfe die Schreibweise.',
 'nouserspecified' => 'Bitte gib einen Benutzernamen an.',
-'login-userblocked' => '{{GENDER:$1|Dieser Benutzer|Dieser Benutzerin|Dieser Benutzer}} ist gesperrt. Anmeldung nicht erlaubt.',
+'login-userblocked' => '{{GENDER:$1|Dieser Benutzer|Diese Benutzerin|Dieser Benutzer}} ist gesperrt. Die Anmeldung ist nicht erlaubt.',
 'wrongpassword' => 'Das Passwort ist falsch. Bitte versuche es erneut.',
 'wrongpasswordempty' => 'Es wurde kein Passwort eingegeben. Bitte versuche es erneut.',
 'passwordtooshort' => 'Passwörter müssen mindestens {{PLURAL:$1|1 Zeichen|$1 Zeichen}} lang sein.',
@@ -1323,9 +1342,9 @@ Stelle sicher, dass die Versionsgeschichte einer Seite historisch korrekt ist.',
 'mergelogpagetext' => 'Dies ist das Logbuch der vereinigten Versionsgeschichten.',
 
 # Diffs
-'history-title' => 'Versionsgeschichte von „$1“',
-'difference-title' => 'Unterschied zwischen den Versionen von „$1“',
-'difference-title-multipage' => 'Unterschied zwischen den Seiten „$1“ und „$2“',
+'history-title' => '$1: Versionsgeschichte',
+'difference-title' => '$1: Unterschied zwischen den Versionen',
+'difference-title-multipage' => '$1 und $2: Unterschied zwischen den Seiten',
 'difference-multipage' => '(Unterschied zwischen Seiten)',
 'lineno' => 'Zeile $1:',
 'compareselectedversions' => 'Gewählte Versionen vergleichen',
@@ -1420,6 +1439,7 @@ Stelle sicher, dass die Versionsgeschichte einer Seite historisch korrekt ist.',
 'prefs-beta' => 'Beta-Funktionen',
 'prefs-datetime' => 'Datum und Zeit',
 'prefs-labs' => 'Alpha-Funktionen',
+'prefs-user-pages' => 'Benutzerseiten',
 'prefs-personal' => 'Benutzerdaten',
 'prefs-rc' => 'Letzte Änderungen',
 'prefs-watchlist' => 'Beobachtungsliste',
@@ -1502,7 +1522,7 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'gender-unknown' => 'Nicht angegeben',
 'gender-male' => 'Männlich',
 'gender-female' => 'Weiblich',
-'prefs-help-gender' => 'Optional: Wird unter anderem von der Software für die geschlechtsspezifische Anrede genutzt. Diese Information ist <u>öffentlich</u>.',
+'prefs-help-gender' => 'Optional: Wird unter anderem von der Software für die geschlechtsspezifische Anrede genutzt. Diese Information ist öffentlich.',
 'email' => 'E-Mail',
 'prefs-help-realname' => 'Optional. Damit kann dein bürgerlicher Name deinen Beiträgen zugeordnet werden.',
 'prefs-help-email' => 'Die Angabe einer E-Mail-Adresse ist optional, ermöglicht aber die Zusendung eines Ersatzpasswortes, sofern du dein Passwort vergessen hast.',
@@ -1537,9 +1557,9 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'saveusergroups' => 'Gruppenzugehörigkeit ändern',
 'userrights-groupsmember' => 'Mitglied von:',
 'userrights-groupsmember-auto' => 'Automatisch Mitglied von:',
-'userrights-groups-help' => 'Du kannst die Gruppenzugehörigkeit dieses Benutzers ändern:
-* Ein markiertes Kästchen bedeutet, dass der Benutzer Mitglied dieser Gruppe ist.
-* Ein nichtmarkiertes Kästchen bedeutet, dass der Benutzer nicht Mitglied dieser Gruppe ist.
+'userrights-groups-help' => 'Du kannst die Gruppenzugehörigkeit {{GENDER:$1|dieses Benutzers|dieser Benutzerin}} ändern:
+* Ein markiertes Kästchen bedeutet, dass {{GENDER:$1|der Benutzer|die Benutzerin}} Mitglied dieser Gruppe ist.
+* Ein nichtmarkiertes Kästchen bedeutet, dass {{GENDER:$1|der Benutzer|die Benutzerin}} nicht Mitglied dieser Gruppe ist.
 * Ein * bedeutet, dass du das Benutzerrecht nach Erteilung nicht wieder zurücknehmen kannst (oder umgekehrt).',
 'userrights-reason' => 'Grund:',
 'userrights-no-interwiki' => 'Du hast nicht die erforderliche Berechtigung, um Benutzerrechte in anderen Wikis ändern zu können.',
@@ -1682,7 +1702,7 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'nchanges' => '$1 {{PLURAL:$1|Änderung|Änderungen}}',
 'recentchanges' => 'Letzte Änderungen',
 'recentchanges-legend' => 'Anzeigeoptionen',
-'recentchangestext' => "Auf dieser Seite kannst du die letzten Änderungen auf '''{{SITENAME}}''' nachverfolgen.",
+'recentchanges-summary' => 'Auf dieser Seite kannst du die letzten Änderungen in diesem Wiki nachverfolgen.',
 'recentchanges-feed-description' => 'Verfolge mit diesem Feed die letzten Änderungen in {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Neue Seite',
 'recentchanges-label-minor' => 'Kleine Änderung',
@@ -1831,7 +1851,7 @@ Das Hochladen von Java-Dateien ist nicht gestattet, da sie die Umgehung von Sich
 'destfilename' => 'Zielname:',
 'upload-maxfilesize' => 'Maximale Dateigröße: $1',
 'upload-description' => 'Dateibeschreibung',
-'upload-options' => 'Hochlade-Optionen',
+'upload-options' => 'Hochladeoptionen',
 'watchthisupload' => 'Diese Datei beobachten',
 'filewasdeleted' => 'Eine Datei mit diesem Namen wurde schon einmal hochgeladen und zwischenzeitlich wieder gelöscht. Bitte prüfe zuerst den Eintrag im $1, bevor du die Datei wirklich speicherst.',
 'filename-bad-prefix' => "Der Dateiname beginnt mit '''„$1“'''. Dies ist im allgemeinen der von einer Digitalkamera vorgegebene Dateiname und daher nicht sehr aussagekräftig.
@@ -1889,14 +1909,15 @@ Wenn das Problem weiter besteht, informiere einen [[Special:ListUsers/sysop|Syst
 'backend-fail-writetemp' => 'Die temporäre Datei konnte nicht geschrieben werden.',
 'backend-fail-closetemp' => 'Die temporäre Datei konnte nicht geschlossen werden.',
 'backend-fail-read' => 'Die Datei $1 konnte nicht gelesen werden.',
-'backend-fail-create' => 'Die Datei $1 konnte nicht erstellt werden.',
-'backend-fail-maxsize' => 'Die Datei $1 konnte nicht erstellt werden, da sie größer als {{PLURAL:$2|ein Byte|$2 Byte}} ist.',
+'backend-fail-create' => 'Die Datei $1 konnte nicht gespeichert werden.',
+'backend-fail-maxsize' => 'Die Datei $1 konnte nicht gespeichert werden, da sie größer als {{PLURAL:$2|ein Byte|$2 Byte}} ist.',
 'backend-fail-readonly' => 'Das Speicher-Backend „$1“ befindet sich derzeit im Lesemodus. Der angegebene Grund lautet: „$2“',
 'backend-fail-synced' => 'Die Datei „$1“ befindet sich, innerhalb des internen Speicher-Backends, in einem inkonsistenten Zustand.',
 'backend-fail-connect' => 'Es konnte keine Verbindung zum Speicher-Backend „$1“ hergestellt werden.',
 'backend-fail-internal' => 'Im Speicher-Backend „$1“ ist ein unbekannter Fehler aufgetreten.',
 'backend-fail-contenttype' => 'Der Inhaltstyp, der im Pfad „$1“ zu speichernden Datei, konnte nicht bestimmt werden.',
 'backend-fail-batchsize' => 'Eine Stapelverarbeitungsdatei, die {{PLURAL:$1|eine Operation|$1 Operationen}} enthält, wurde an das Speicher-Backend gesandt. Die Begrenzung liegt allerdings bei {{PLURAL:$2|einer Operation|$2 Operationen}}.',
+'backend-fail-usable' => 'Die Datei $1 konnte, entweder aufgrund eines nicht vorhandenen Verzeichnisses oder aufgrund unzureichender Berechtigungen, nicht gespeichert werden.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Es konnte keine Verbindung zur Journaldatenbank des Speicher-Backends „$1“ hergestellt werden.',
@@ -1959,7 +1980,6 @@ Aus Sicherheitsgründen ist img_auth.php deaktiviert.',
 'http-curl-error' => 'Fehler beim Abruf der URL: $1',
 'http-host-unreachable' => 'URL konnte nicht erreicht werden.',
 'http-bad-status' => 'Während der HTTP-Anfrage ist ein Fehler aufgetreten: $1 $2',
-'http-truncated-body' => 'Der Inhalt der Anforderung wurde nicht vollständig empfangen.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'URL ist nicht erreichbar',
@@ -3754,7 +3774,7 @@ Bitte bestätige, dass du diese Seite wirklich neu erstellen möchten.",
 'size-gigabytes' => '$1 GB',
 
 # Live preview
-'livepreview-loading' => 'Am Laden …',
+'livepreview-loading' => 'Lade …',
 'livepreview-ready' => 'Laden … Fertig!',
 'livepreview-failed' => 'Die sofortige Vorschau ist nicht möglich!
 Bitte die normale Vorschau nutzen.',
index e02bfd6..1567e2a 100644 (file)
  * @author Xoser
  */
 
+$namespaceNames = array(
+       NS_MEDIA            => 'Medya',
+       NS_SPECIAL          => 'Xısusi',
+       NS_TALK             => 'Werênayış',
+       NS_USER             => 'Karber',
+       NS_USER_TALK        => 'Karber_mesac',
+       NS_PROJECT_TALK     => '$1_werênayış',
+       NS_FILE             => 'Dosya',
+       NS_FILE_TALK        => 'Dosya_werênayış',
+       NS_MEDIAWIKI        => 'MediaWiki',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki_werênayış',
+       NS_TEMPLATE         => 'Şablon',
+       NS_TEMPLATE_TALK    => 'Şablon_werênayış',
+       NS_HELP             => 'Desteg',
+       NS_HELP_TALK        => 'Desteg_werênayış',
+       NS_CATEGORY         => 'Kategori',
+       NS_CATEGORY_TALK    => 'Kategori_werênayış',
+);
+
+$specialPageAliases = array(
+       'Activeusers'               => array( 'Karbereaktiv' ),
+       'Allmessages'               => array( 'MesaciPero' ),
+       'Categories'                => array( 'Kategoriy' ),
+       'Longpages'                 => array( 'PeleDergi' ),
+       'Mycontributions'           => array( 'İştırakeMe' ),
+       'Recentchanges'             => array( 'VurnayışePeyeni' ),
+       'Specialpages'              => array( 'PeleyXısusi' ),
+       'Statistics'                => array( 'İstatistiki' ),
+       'Tags'                      => array( 'Etiketi' ),
+       'Upload'                    => array( 'Barke' ),
+       'Version'                   => array( 'Versiyon' ),
+       'Watchlist'                 => array( 'Listeyseyri' ),
+);
+
+$magicWords = array(
+       'redirect'                => array( '0', '#HETENAYIŞ', '#REDIRECT' ),
+       'nogallery'               => array( '0', '#GALERİÇINO', '__NOGALLERY__' ),
+       'msg'                     => array( '0', 'MSC', 'MSG:' ),
+       'language'                => array( '0', '#ZIWAN', '#LANGUAGE:' ),
+       'special'                 => array( '0', 'xısusi', 'special' ),
+       'speciale'                => array( '0', 'xısusiye', 'speciale' ),
+       'tag'                     => array( '0', 'etiket', 'tag' ),
+);
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Bınê gırey de xete bance:',
@@ -155,7 +199,7 @@ $messages = array(
 'cancel' => 'Texelnayış',
 'moredotdotdot' => 'Vêşêri...',
 'mypage' => 'Pela mı',
-'mytalk' => 'Werênayışê mı',
+'mytalk' => 'Persiyê mı',
 'anontalk' => 'Pela werênayışê nê IPy',
 'navigation' => 'Pusula',
 'and' => '&#32;u',
@@ -173,8 +217,8 @@ $messages = array(
 
 # Vector skin
 'vector-action-addsection' => 'Qal berze cı',
-'vector-action-delete' => 'Bestere',
-'vector-action-move' => 'Bere',
+'vector-action-delete' => 'Besterne',
+'vector-action-move' => 'Ahûln',
 'vector-action-protect' => 'Bıpawe',
 'vector-action-undelete' => 'Esterıtışi peyser bıgê',
 'vector-action-unprotect' => 'Starkerdışi bıvurne',
@@ -207,7 +251,7 @@ $messages = array(
 'create' => 'Vırazê',
 'editthispage' => 'Ena pele bıvurne',
 'create-this-page' => 'Na pele bınuse',
-'delete' => 'Bestere',
+'delete' => 'Besterne',
 'deletethispage' => 'Ena pele bestere',
 'undelete_short' => '{{PLURAL:$1|Yew vurnayışi|$1 Vurnayışan}} mestere',
 'viewdeleted_short' => '{{PLURAL:$1|Yew vurnayışo esterıte|$1 Vurnayışanê esterıtan}} bımocne',
@@ -218,14 +262,14 @@ $messages = array(
 'unprotectthispage' => 'Starkerdışe ena peler bıvurne',
 'newpage' => 'Pela newiye',
 'talkpage' => 'Ena pele sero werêne',
-'talkpagelinktext' => 'Werênayış',
+'talkpagelinktext' => 'Mesac',
 'specialpage' => 'Pela xısusi',
 'personaltools' => 'Hacetê şexsi',
 'postcomment' => 'Qısımo newe',
 'articlepage' => 'Pela zerreki bıvêne',
-'talk' => 'Werênayış',
+'talk' => 'Persiyey',
 'views' => 'Asayışi',
-'toolbox' => 'Qutiya hacetan',
+'toolbox' => 'Haceti',
 'userpage' => 'Pela karberi bıvêne',
 'projectpage' => 'Pela procey bıvêne',
 'imagepage' => 'Pela dosya bımocne',
@@ -287,7 +331,7 @@ $1',
 'youhavenewmessages' => 'To rê estê $1 ($2).',
 'newmessageslink' => 'mesacê newey',
 'newmessagesdifflink' => 'vurnayışo peyên',
-'youhavenewmessagesmulti' => 'To rê $1 de mesacê newey estê',
+'youhavenewmessagesmulti' => '$1 mesaco newe esto',
 'editsection' => 'bıvurne',
 'editsection-brackets' => '[$1]',
 'editold' => 'bıvurne',
@@ -335,7 +379,7 @@ Keyepelê {{SITENAME}} eşkeno xeta eşkera bıkero.',
 'nosuchspecialpage' => 'Pela xasa wınasiye çıniya',
 'nospecialpagetext' => '<strong>To yew pela xasa nêvêrdiye waşte.</strong>
 
-Seba lista pelanê xasanê vêrdeyan kerem ke: [[Special:SpecialPages|{{int:specialpages}}]].',
+Seba lista pelanê xasanê vêrdeyan reca kena: [[Special:SpecialPages|{{int:specialpages}}]].',
 
 # General errors
 'error' => 'Xırab',
@@ -484,7 +528,7 @@ Parola her {{PLURAL:$1|yew seete|$1 seete}} de yew rey erşawiyena.',
 'mailerror' => 'Erşawıtışe xetayê e-posta: $1',
 'acct_creation_throttle_hit' => 'Yew ten IP adresê şıma xebıtnayo u kewto no wiki, roco peyin de {{PLURAL:$1|1 hesab|$1 hesab}} vıraşto.
 xulasa ney kesê ke IP adresê şıma xebıtneni hini nêeşkeni ney ra zêdêr hesab akeri.',
-'emailauthenticated' => 'E-posta şıma ney tarixi de $2 $3 tarihinde tesdiq biyo.',
+'emailauthenticated' => "Adresê E-posta da şıma '''$2''' seate $3 dı kerdo araşt.",
 'emailnotauthenticated' => 'No format de nuştışê e-postayi qebul nêbeno.
 Yew formato meqbul de adresê e-posta bınuse ya zi veng bıverde.',
 'noemailprefs' => 'Hesab biyo a.',
@@ -657,7 +701,7 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'userjspreview' => "'''şıma tena test keni ya ziverqayn seyr keni - karberê JavaScript'i hema qayd nebiyo.'''",
 'userinvalidcssjstitle' => "'''Teme:''' Mewzuyê \"\$1\" çıniyo.
 Dosyanê be namey .css u .js'i de herfa werdiye bıgurêne, mesela herında {{ns:user}}:Foo/Vector.css'i de {{ns:user}}:Foo/vector.css bınuse.",
-'updated' => '(Biyo rocane)',
+'updated' => '(Newenyaya)',
 'note' => "'''Not:'''",
 'previewnote' => "Teme! ena teyna verqeyda.'''
 Vurnayışê tu hama qeyd nıbiyo!",
@@ -774,9 +818,9 @@ Sebebo ke terefê $3 ra diyao ''$2''",
 'last' => 'pey',
 'page_first' => 'verên',
 'page_last' => 'peyên',
-'histlegend' => "Ferqê weçinıtış: Qutiya versiyonan isaret bık u dest bı ''enter''i ya zi gozaga cêrêne klik bık.<br />
-Cetwel: (pey) = ferqê versiyonê peni,
-(ver) = ferqê versiyonê verni, Q = vurnayışo qıçkek.",
+'histlegend' => "'''Ferqê weçinayışi:''' Qutiya versiyonan mor ke u  ''enter''i pıploxne ya zi makera cêrêner pılpxne.<br /> 
+Lecant: '''({{int:cur}})''' = ferqê versiyonê peni,
+'''({{int:last}})''' = ferqê versiyonê verni, '''{{int:minoreditletter}}''' = vurnayışo werdı.",
 'history-fieldset-title' => 'Tarixê browsey',
 'history-show-deleted' => 'Tenya esterıt',
 'histfirst' => 'Verênêr',
@@ -888,8 +932,8 @@ rocaneyan kontrol bıkere.',
 
 # Suppression log
 'suppressionlog' => 'qeydê pinani kerdışi',
-'suppressionlogtext' => "Cêrdı, kahyayan ra zerreko nımıte u  merdumê bloke kerdışi tede estê
-listey xelati u bloki re  [[Special:BlockList|IP'yê ke bloke biyê]] bivinê.",
+'suppressionlogtext' => "Cêr de, kahyayan ra zerreko nımıte esto,eno listey besterneya u merdumê bloke kerdışiyo
+Listey xırabi u bloki re pelay [[Special:BlockList|IP'yê ke bloke biyê]] bivinê.",
 
 # History merging
 'mergehistory' => 'vere cûye pelan bıhewelın',
@@ -921,7 +965,7 @@ no vurnayişo ke şıma keni kontrol bıkere yew pelo kehen nêbo.',
 'mergelogpagetext' => 'Cêr de jû liste esta ke mocnena ra, raya tewr peyêne kamci pela tarixi be a bine ra şanawa pê.',
 
 # Diffs
-'history-title' => 'Tarixê revizyoniyê "$1"',
+'history-title' => 'Rewizyonê $1:',
 'difference-multipage' => '(Ferqê pelan)',
 'lineno' => 'Rêza $1i:',
 'compareselectedversions' => 'Verziyonan kontrol bıke',
@@ -962,7 +1006,7 @@ no vurnayişo ke şıma keni kontrol bıkere yew pelo kehen nêbo.',
 'searchprofile-images-tooltip' => 'Qe doyayî bigêre',
 'searchprofile-everything-tooltip' => 'Tedeestey hemine cı geyre (pelanê mınaqeşey zi tey)',
 'searchprofile-advanced-tooltip' => 'qe cayê nimeyî bigêre',
-'search-result-size' => '$1 ({{PLURAL:$2|1 çekuye|$2 çekuy}})',
+'search-result-size' => '$1 ({{PLURAL:$2|1 kelime|$2 kelimey}})',
 'search-result-category-size' => '{{PLURAL:$1|1 eza|$1 ezayan}} ({{PLURAL:$2|1 ketegoriyê bini|$2 kategiryanê binan}}, {{PLURAL:$3|1 dosya|$3 dosyayan}})',
 'search-result-score' => 'Eleqa: $1%',
 'search-redirect' => '(ber $1)',
@@ -1002,10 +1046,11 @@ Pe verbendi ''all:'', vaceyê xo bıvurni ki contenti hemi cıgeyro (pelanê mı
 'qbsettings-fixedright' => 'Rêcaene raşt',
 'qbsettings-floatingleft' => 'rêcaene çhep',
 'qbsettings-floatingright' => 'rêcaene raşt',
+'qbsettings-directionality' => 'Sabito, hereket de dosya da zıwan de şımaya gıredayeyo',
 
 # Preferences page
 'preferences' => 'Tercihi',
-'mypreferences' => 'Tercihê mı',
+'mypreferences' => 'Tercihi',
 'prefs-edits' => 'Amarê vurnayışan:',
 'prefsnologin' => 'Şıma cıkewtış nêvıraşto',
 'prefsnologintext' => 'Şıma gani be <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} cikewte]</span> ke tercihanê karberi xo eyar bıkerê.',
@@ -1030,9 +1075,9 @@ Pe verbendi ''all:'', vaceyê xo bıvurni ki contenti hemi cıgeyro (pelanê mı
 'prefs-setemail' => 'E-posta adresiyê xo saz kerê',
 'prefs-email' => 'Tercihê e-maili',
 'prefs-rendering' => 'Asayış',
-'saveprefs' => 'Qeyd ke',
+'saveprefs' => 'Star ke',
 'resetprefs' => 'Vurnayışê ke qeyd nêbiy, pak ke',
-'restoreprefs' => 'Eyaranê standardan pêroine peyser bia',
+'restoreprefs' => 'Sazanê standardan pêron newe dere barke',
 'prefs-editing' => 'Cay pela nustısi',
 'prefs-edit-boxsize' => 'Ebatê pencereyê vurnayîşî.',
 'rows' => 'Xeti:',
@@ -1077,14 +1122,14 @@ Etıya şıma rê yew kılito raştameo ke şıma şenê bıgurenê/bıxebetnê:
 'prefs-common-css-js' => 'CSS/JavaScript pê şablonanê peran de pay biya:',
 'prefs-reset-intro' => 'ena pele de şıma tercihanê xo şenê bıçarnê be tercihanê keyepelê ke verê coy eyar biy.
 Na game tepeya nêerziyena.',
-'prefs-emailconfirm-label' => 'Konfirmasyonê e-maili',
+'prefs-emailconfirm-label' => 'Tesdiqiya E-posta:',
 'prefs-textboxsize' => 'Ebatê pencerey vurnayışi',
 'youremail' => 'E-Mail (mecbur niyo) *:',
 'username' => 'Namey karberi:',
 'uid' => 'Namey karberi:',
-'prefs-memberingroups' => 'Ezayê {{PLURAL:$1|grup|grupan}}:',
+'prefs-memberingroups' => 'Ezayê {{PLURAL:$1|grub|grubi}}:',
 'prefs-registration' => 'Wextê qeydbiyayışi',
-'yourrealname' => 'Nameyo raştıkên:',
+'yourrealname' => 'Nameyo raştay',
 'yourlanguage' => 'Zıwan:',
 'yourvariant' => 'Varyante miyandê zuwani:',
 'yournick' => 'imza:',
@@ -1093,19 +1138,19 @@ Na game tepeya nêerziyena.',
 Etiketê HTMLî kontrol bike.',
 'badsiglength' => 'İmzayê şıma zaf dergo.
 $1 gani bınê no {{PLURAL:$1|karakter|karakter}}de bıbo.',
-'yourgender' => 'Cınsiyetê to:',
+'yourgender' => 'Neri makey:',
 'gender-unknown' => 'Cınsiyet nêvato',
 'gender-male' => 'cıwamêrd',
 'gender-female' => 'Cenıke',
 'prefs-help-gender' => 'keyfiyo: sofware qey adersê cinsiyet şuxulneno, no malumat umumiyo.',
-'email' => 'E-mail',
+'email' => 'E-posta',
 'prefs-help-realname' => 'Nameyo raşt waştena şıma rê mendo.
 Eka tu wazene ke nameyo raşt xo bide, ma nameyo raşt ti iştirakanê ti de mocnenê.',
 'prefs-help-email' => 'Dayışê adresa e-postey keyfiyo, labelê seba eyarê parola lazıma, wexto ke şıma naye xo vira kerê.',
 'prefs-help-email-others' => 'Şıma şenê weçinê ke ê bini be yew gırey pela şımaya karberi ya zi pela werênayışi sera şıma de ebe e-poste irtıbat kewê.
 Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena.',
 'prefs-help-email-required' => 'E-mail adrese mecburiya.',
-'prefs-info' => 'Enformasyonê temelî',
+'prefs-info' => 'Seron zanayış',
 'prefs-i18n' => 'Şaryayış kerdış',
 'prefs-signature' => 'İmza',
 'prefs-dateformat' => 'Formatê tarixi',
@@ -1276,7 +1321,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'nchanges' => '$1 {{PLURAL:$1|vurnayış|vurnayışan}}',
 'recentchanges' => 'Vurnayışê peyêni',
 'recentchanges-legend' => 'Tercihê vurnayışanê peniyan',
-'recentchangestext' => 'eno pele de ser wîkî de vurnayîşî penîyî teqib bike',
+'recentchanges-summary' => 'Ena pele de wiki sero vurnayışê peyêni teqib ke',
 'recentchanges-feed-description' => 'Ena feed dı vurnayişanê tewr peniyan teqip bık.',
 'recentchanges-label-newpage' => 'Ena edît yew pela newî viraşt',
 'recentchanges-label-minor' => 'Eno yew edîto qickek o',
@@ -1285,18 +1330,18 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'rcnote' => "Bıni dı {{PLURAL:$1|is '''1''' vurnayış|peni '''$1''' vurnayışan estê}} {{PLURAL:$2|roc|'''$2''' roci}}, hetani $5, $4.",
 'rcnotefrom' => "Cêr de vurnayîşê esto ke '''$2''' ra raver  (heta '''$1''' mucnayiyo).",
 'rclistfrom' => '$1 ra vurnayışanê neweyan bımoc',
-'rcshowhideminor' => '$1 vurnayışê qıçan',
-'rcshowhidebots' => '$1 botan',
-'rcshowhideliu' => '$1 karberanê kewti',
-'rcshowhideanons' => '$1 karberano anonomiyan',
+'rcshowhideminor' => 'Vurnayışanê werdiya $1',
+'rcshowhidebots' => 'bota $1',
+'rcshowhideliu' => 'karberanê qeydına $1',
+'rcshowhideanons' => 'karberanê anoniman $1',
 'rcshowhidepatr' => '$1 vurnayışê ke dewriya geyrayê',
-'rcshowhidemine' => '$1 nuştışanê mı',
-'rclinks' => 'bımoc $1 vurnayışi $2 roci dı<br />$3',
+'rcshowhidemine' => 'nuştışanê mı $1',
+'rclinks' => 'Peyni rocan de vurnayışa $1  $2 roci dı<br />$3',
 'diff' => 'ferq',
 'hist' => 'ver',
 'hide' => 'Bınımne',
 'show' => 'Bımocne',
-'minoreditletter' => 'q',
+'minoreditletter' => 'werdı',
 'newpageletter' => 'N',
 'boteditletter' => 'b',
 'number_of_watching_users_pageview' => '[$1 ho seyr keno {{PLURAL:$1|karber|karberî}}]',
@@ -1413,7 +1458,7 @@ Semedê ancia barkerdışi dewamkerdış ra ver tarixê esterışê dosya gani q
 'uploadvirus' => 'Ena dosya de yew virus estê: Qe detayan: $1',
 'upload-source' => 'Dosyayê henî',
 'sourcefilename' => 'Nameyê dosyaye çimeyî',
-'sourceurl' => 'URLê henî',
+'sourceurl' => "URL'yê Çımi",
 'destfilename' => 'Destînasyonê nameyêdosya',
 'upload-maxfilesize' => 'Ebatêî dosya tewr girdî: $1',
 'upload-description' => 'Deskripsiyonê dosyayî',
@@ -1446,12 +1491,13 @@ Eke problem dewam kerd [[Special:ListUsers/sysop|serkari]] de irtibat kewe.',
 'backend-fail-backup' => '$1 nê wendeyê',
 'backend-fail-notexists' => '$1 name dı dosya çına.',
 'backend-fail-delete' => '$1 nê besterneyê',
+'backend-fail-alreadyexists' => "Dosyay $1'ya nêwanêna",
 'backend-fail-store' => '$1 ra $2 berdışo nê wanêno',
 'backend-fail-copy' => '$1 ra $2 kopya kerdışena dosyayo nêbeno',
 'backend-fail-move' => '$1 ra $2 berdışo nê wanêno',
 'backend-fail-opentemp' => 'Teferruatê dosyayo nêwanêno',
 'backend-fail-read' => 'Na "$1" dosya nê wanêna',
-'backend-fail-create' => '$1 nê vırazêna',
+'backend-fail-create' => 'Dosyay $1 nê vırazıyê',
 
 # Special:UploadStash
 'uploadstash' => 'Nımıtışê barkerdışi',
@@ -1506,10 +1552,10 @@ keyepel nıka zaf meşğulo yew dema herayi de newe ra tesel bıkerê.',
 'imgfile' => 'dosya',
 'listfiles' => 'Lista Dosya',
 'listfiles_thumb' => 'Resmo qıckek',
-'listfiles_date' => 'Tarix',
+'listfiles_date' => 'Deme',
 'listfiles_name' => 'Name',
 'listfiles_user' => 'Karber',
-'listfiles_size' => 'Ebat',
+'listfiles_size' => 'Gırdiye',
 'listfiles_description' => 'Vatiş/deskripsiyon',
 'listfiles_count' => 'Versiyoni',
 
@@ -1528,7 +1574,7 @@ keyepel nıka zaf meşğulo yew dema herayi de newe ra tesel bıkerê.',
 'filehist-user' => 'Karber',
 'filehist-dimensions' => 'Dimensiyoni',
 'filehist-filesize' => 'Ebatê dosyayî',
-'filehist-comment' => 'Rexne',
+'filehist-comment' => 'Vatış',
 'filehist-missing' => 'Dosya nieseno',
 'imagelinks' => 'Gurenayışê dosya',
 'linkstoimage' => 'Ena {{PLURAL:$1|pela|$1 pela}} gıreye ena dosya:',
@@ -1576,6 +1622,7 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 ** Çift/dosyaya kopyayın',
 'filedelete-edit-reasonlist' => 'Sebebê esterayîşî bivurne',
 'filedelete-maintenance' => 'Esterayîş u resterasyonê dosyayî wextê texmirî de nibenê.',
+'filedelete-maintenance-title' => 'Dosyaya nêbesterneyêna',
 
 # MIME search
 'mimesearch' => 'MIME bigêre',
@@ -1605,7 +1652,7 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 # Statistics
 'statistics' => 'İstatistiki',
 'statistics-header-pages' => 'İstatistikê pele',
-'statistics-header-edits' => 'Îstatistiksê vurnayîşî',
+'statistics-header-edits' => 'Îstatistikê vurnayîşî',
 'statistics-header-views' => 'Îstatistiksê vînayîşî',
 'statistics-header-users' => 'Îstatistiksê karberî',
 'statistics-header-hooks' => 'Îstatistiksê binî',
@@ -1641,7 +1688,7 @@ gıreyê her satıri de gıreyi; raş motışê yewın u dıyıni esto.
 
 'withoutinterwiki' => 'Pelî ke bê linkanê ziwanî',
 'withoutinterwiki-summary' => 'Enê pelî ke versiyonê ziwanî binî ra link nidano.',
-'withoutinterwiki-legend' => 'Prefiks',
+'withoutinterwiki-legend' => 'Verole',
 'withoutinterwiki-submit' => 'Bımocne',
 
 'fewestrevisions' => 'Pelî de ke revizyonê tayî estê',
@@ -1720,7 +1767,7 @@ Xo vira mekerê ke, sıteyê webiê bini şenê direkt ebe URLi yew dosya ra gı
 # Special:Log
 'specialloguserlabel' => 'Weskedar:',
 'speciallogtitlelabel' => 'Menzil (sernuşte yana karber):',
-'log' => 'Logan',
+'log' => 'Qeydi',
 'all-logs-page' => 'Loganê umum yê hemî',
 'alllogstext' => 'qey {{SITENAME}}i mocnayişê heme rocaneyani.
 tipa rocaneyi, nameyê karberi (herfa pil u qıci re hessas a), ya zi peli (reyna hessasiyê herfa pil u qıciyi) bıweçine u esayiş qıc kerê.',
@@ -1737,7 +1784,7 @@ tipa rocaneyi, nameyê karberi (herfa pil u qıci re hessas a), ya zi peli (reyn
 'allarticles' => 'Peli pêro',
 'allinnamespace' => 'Pelanê hemî ($1 cayênameyî)',
 'allnotinnamespace' => 'Pelanê hemî ($1 cayênameyî de niyo)',
-'allpagesprev' => 'Eveli',
+'allpagesprev' => 'Verêni',
 'allpagesnext' => 'ver şo',
 'allpagessubmit' => 'Şo',
 'allpagesprefix' => 'herfê ke şıma tiya de nuşti, pê ney herfan pelê ke destpêkenê liste ker:',
@@ -1826,8 +1873,8 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 'emailusername' => 'Nameyê karberi:',
 'emailusernamesubmit' => 'Stare dı',
 'email-legend' => 'karberê {{SITENAME}} binan re e-posta bıerşaw',
-'emailfrom' => 'Kam ra',
-'emailto' => 'Kam rê',
+'emailfrom' => 'Rışten:',
+'emailto' => 'Geren:',
 'emailsubject' => 'behs/mesela:',
 'emailmessage' => 'Mesaj',
 'emailsend' => 'bıerşawê/bıruşnê',
@@ -1843,13 +1890,13 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 
 # Watchlist
 'watchlist' => 'lista mına seyr-kerdışi',
-'mywatchlist' => 'Lista mına seyrkerdışi',
+'mywatchlist' => 'Listey seyri',
 'watchlistfor2' => 'Semedê $1 ($2)',
 'nowatchlist' => 'listeya temaşa kerdıişê şıma de yew madde zi çina.',
 'watchlistanontext' => 'qey vurnayişê maddeya listeya temaşakerdişi $1.',
 'watchnologin' => 'hesab akerde niyo',
 'watchnologintext' => 'qey vurnayişê listeya temaşakerdışi [[Special:UserLogin|gani şıma hesab akeri]].',
-'addwatch' => 'Listeyê seyr kerdişî xo mıyan ke',
+'addwatch' => 'Listeyê seyri deke',
 'addedwatchtext' => 'Ma pele "[[:$1]]" zerri [[Special:Watchlist|watchlist]]ê tı kerd de.
 Ena deme ra, ma qe vurnayışan ser ena pele tı haberdar keni. Hem zi çı dem ma tu ri heber dun, zerri [[Special:RecentChanges|list of recent changes]] name pele beno qalın. Tı ri beno qolay çıta vurnaye biyo.',
 'removewatch' => 'Listedê mınê seyr kerdışi ra hewad',
@@ -1869,15 +1916,15 @@ Ena deme ra, ma qe vurnayışan ser ena pele tı haberdar keni. Hem zi çı dem
 'watchlistcontains' => 'listeya seyrkerdışê şıma de $1 tene {{PLURAL:$1|peli|peli}} estî.',
 'iteminvalidname' => "pê no '$1' unsuri problem bı, nameyo nemeqbul...",
 'wlnote' => "$3 seate u bahde $4 deqa dıma {{PLURAL:$2|ju seate dı|'''$2''' ju seate dı}} {{PLURAL:$1|vurnayışe peyeni|vurnayışe '''$1''' peyeni}} cêrdeyê",
-'wlshowlast' => 'bımoc $1 seat $2 rocan $3',
-'watchlist-options' => 'Tercihanê listey seyrkerdışi',
+'wlshowlast' => 'Peyni de vurnayışan ra  $1 seata u $2 roca $3 bımocnê',
+'watchlist-options' => 'Tercihê liste da seyri',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'Seyr ke...',
 'unwatching' => 'Seyr meke...',
 
 'enotif_mailer' => 'postaya xeberdayişi {{SITENAME}}',
-'enotif_reset' => 'heme pelan ziyaret kerde nişane bıker',
+'enotif_reset' => 'Pela pêro ziyaret kerde deye mor ke',
 'enotif_newpagetext' => 'Ena yew pela newî ya.',
 'enotif_impersonal_salutation' => '{{SITENAME}} karber',
 'changed' => 'vurniya',
@@ -2023,9 +2070,9 @@ Tı eşkeno seviyeye kılit kerdışi bıvurno, feqat tı nıeşken "cascading p
 
 # Restrictions (nouns)
 'restriction-edit' => 'Bıvurne',
-'restriction-move' => 'Bere',
+'restriction-move' => 'Ahûln',
 'restriction-create' => 'Viraze',
-'restriction-upload' => 'Bar bike',
+'restriction-upload' => 'Barke',
 
 # Restriction levels
 'restriction-level-sysop' => 'pawıtışê tamamîye',
@@ -2067,7 +2114,7 @@ qey karê tepiya ardışi u qey karê hewn a kerdışê verıni bıewnê [[Speci
 'undelete-search-title' => 'Bıgeyre pelanê eserıtiyan',
 'undelete-search-box' => 'bıgêr pelê hewn a biyayeyani',
 'undelete-search-prefix' => 'pel ê ke pê ney destpêkenî, ramocın',
-'undelete-search-submit' => 'bigêre',
+'undelete-search-submit' => 'Cı geyre',
 'undelete-no-results' => 'Zerre arşîvê esterayîşî de peleyan match nibiyê.',
 'undelete-filename-mismatch' => 'Vurnayîşê ke pê wextê puli ye $1î nieşkenî biyare: nameyê dosyayî match nibeno',
 'undelete-bad-store-key' => 'Vurnayîşê ke pê wextê puli ye $1î nieşkenî biyare: verniyê esterayîşî de dosyayî vînî biya.',
@@ -2079,17 +2126,18 @@ belka cıwa ver hewn a biyo..',
 
 $1',
 'undelete-show-file-confirm' => '"<nowiki>$1</nowiki>" şıma emin î dosyaya revizyonê no $2 $3 tarixi bıvini?',
-'undelete-show-file-submit' => 'Ya',
+'undelete-show-file-submit' => 'E',
 
 # Namespace form on various pages
 'namespace' => 'Cayê namey:',
-'invert' => 'seleksiyon peyser biya',
+'invert' => 'Bê weçineni ê bina peyser biya',
+'namespace_association' => 'Pineyê cadê naman',
 'blanknamespace' => '(Ser)',
 
 # Contributions
 'contributions' => 'İştirakê karberi',
 'contributions-title' => '$1 de iştırakê karberi',
-'mycontris' => 'İştırakê mı',
+'mycontris' => 'İştıraxê mı',
 'contribsub2' => 'Semedê $1 ($2)',
 'nocontribs' => 'Ena kriteriya de vurnayîş çini yo.',
 'uctop' => '(ser)',
@@ -2103,7 +2151,7 @@ $1',
 'sp-contributions-deleted' => 'vurnayîşê karberî wedariyayê',
 'sp-contributions-uploads' => 'barkerdey',
 'sp-contributions-logs' => 'logî',
-'sp-contributions-talk' => 'werênayış',
+'sp-contributions-talk' => 'mesac',
 'sp-contributions-userrights' => 'Îdarayê heqqanê karberan',
 'sp-contributions-blocked-notice' => 'verniyê no/na karber/e geriyayo/a
 qê referansi qeydê vernigrewtışi cêr de eşkera biyo:',
@@ -2167,8 +2215,8 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'ipb-confirm' => 'Bloke kerdışi tesdik ke',
 'badipaddress' => 'Adresê IPî raşt niyo',
 'blockipsuccesssub' => 'Blok biyo',
-'blockipsuccesstext' => 'verniyê [[Special:Contributions/$1|$1]] geriya.
-<br />qey çım ra viyarnayişê verni-grewtışi bıewnê[[Special:BlockList|Ê yê ke verniyê IPadresê inan geriyayê]].',
+'blockipsuccesstext' => 'Verniya [[Special:Contributions/$1|$1]] gêriyaya.
+<br />Qey çım ra viyarnayişê verni-grewtışi bewni [[Special:BlockList|Ê yê ke verniyê IP adresê cı gêriyaya]].',
 'ipb-edit-dropdown' => 'Sebebê blokî bivurne',
 'ipb-unblock-addr' => '$1 a bik',
 'ipb-unblock' => 'Yew adresê IPî ya zi nameyê karberî blok bike',
@@ -2178,16 +2226,20 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'unblockiptext' => 'eke şıma qayili ê yê ke verniyê IPadesê inan geriyayê akeri formê cêrıni dekerê.',
 'ipusubmit' => 'Ena blok wedarne',
 'unblocked' => '[[User:$1|$1]] blok biyo',
+'unblocked-range' => "Blokey $1'i wederya",
 'unblocked-id' => 'Blokê $1î wedariyayo',
 'blocklist' => 'Karberê kılitbiyaey',
 'ipblocklist' => 'Karberê kılitbiyaey',
 'ipblocklist-legend' => 'Yew karberê blok biyaye bivîne',
+'blocklist-userblocks' => 'Wederneyanê hesaba bınımne',
+'blocklist-tempblocks' => 'Wederneyanê idaretan bınımne',
 'blocklist-addressblocks' => 'Nêverdışanê IP bınımne',
 'blocklist-rangeblocks' => 'Nêverdışanê gırda bınımne',
 'blocklist-timestamp' => 'İmzay demi',
 'blocklist-target' => 'Menzil',
 'blocklist-expiry' => 'Wahdey qedyayışi',
 'blocklist-by' => 'hizmetdarê blokê',
+'blocklist-params' => 'Parametreyê wedernayışi',
 'blocklist-reason' => 'Sebeb:',
 'ipblocklist-submit' => 'Cı geyre',
 'ipblocklist-localblock' => 'blokê mehelli',
@@ -2213,9 +2265,9 @@ Sebebê kılit-biyayışê $1\'i: "$2"o',
 'blocklog-showsuppresslog' => 'verniyê no/na karberi cıwa ver geriyayo/ya.',
 'blocklogentry' => '[[$1]] block kerd, hetani $2 $3',
 'reblock-logentry' => 'qey [[$1]]i tarixê qediyayişi $2 $3 pa ninan a eyarê ver-grewtışan vurna.',
-'blocklogtext' => 'No kuliyatê kılitkerdış u rakerdışê fealiyetê karberano.
-Adresê IPyê ke otomatikmen kılit biyê lista de çıniyê.
-Seba lista karberanê ke heta nıka kılit biyê [[Special:BlockList|lista kılitkerdışê IPy]] bıvênên.',
+'blocklogtext' => "No kuliyatê kılitkerdış u rakerdışê fealiyetê karberano.
+Adresê IP'ya ke otomatikmen kılit biyê lista de çıniya.
+Seba lista karberanê ke heta nıka kılit biyê [[Special:BlockList|lista kılitkerdışê IPy]] bıvinê.",
 'unblocklogentry' => '$1 ake',
 'block-log-flags-anononly' => 'teyna karberê anonîmî',
 'block-log-flags-nocreate' => 'akerdışê hesabi qapan bi',
@@ -2374,7 +2426,7 @@ ma vaci: qey pelê "[[{{MediaWiki:Mainpage}}]]i " [[{{#Special:Export}}/{{MediaW
 'exportcuronly' => 'têna revizyonê peyin bıger',
 'exportnohistory' => "----
 '''Not:''' pê no form teberdayişê verê (tarix) pelan battal biyo",
-'export-submit' => 'bıkırış',
+'export-submit' => 'Teber de',
 'export-addcattext' => 'kategoriya cerıni ra maddeyan têare ker',
 'export-addcat' => 'têare ker',
 'export-addnstext' => 'pelan cayê nameyan ra têare ker',
@@ -2387,7 +2439,7 @@ ma vaci: qey pelê "[[{{MediaWiki:Mainpage}}]]i " [[{{#Special:Export}}/{{MediaW
 'allmessages' => 'Mesacê sistemi',
 'allmessagesname' => 'Name',
 'allmessagesdefault' => 'nuşteyo orjinal',
-'allmessagescurrent' => 'nuşte yo ke şuxuliyeno',
+'allmessagescurrent' => 'nuşte yo ke Karyayo',
 'allmessagestext' => 'na liste, listeya mesajê cayê nameyê wikimedya yo.
 eke şıma qayili paşt bıdi mahalli kerdışê wikimedyayi, kerem kerê pelê [//www.mediawiki.org/wiki/Localisation mahalli kerdışê wikimedyayi] u [//translatewiki.net translatewiki.net] ziyaret bıkerê.',
 'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages''' qefelnaye yo u ey ra '''{{ns:special}}:Allmessages''' karkerdışi re akerde niyo.",
@@ -2493,9 +2545,9 @@ Kerem ke, qeydkerdış ra ver gocega verqayti bıxebetne.',
 'tooltip-search' => 'Zerreyê {{SITENAME}} de cı geyre',
 'tooltip-search-go' => 'Ebe nê namey tami şo yew pela ke esta',
 'tooltip-search-fulltext' => 'Seba nê meqaley pelan seha ke',
-'tooltip-p-logo' => 'Pelaseri',
-'tooltip-n-mainpage' => 'Pela Seri bıvêne',
-'tooltip-n-mainpage-description' => 'Pela seri bıvêne',
+'tooltip-p-logo' => 'Pela seri',
+'tooltip-n-mainpage' => 'Şo pela seri',
+'tooltip-n-mainpage-description' => 'Şo pela seri',
 'tooltip-n-portal' => 'Heqa projey de, çı şenay bıkerê, çı koti vêniyeno',
 'tooltip-n-currentevents' => 'Vurnayışanê peyênan de melumatê pey bıvêne',
 'tooltip-n-recentchanges' => 'Wiki de lista vurnayışanê peyênan',
@@ -2528,7 +2580,7 @@ Kerem ke, qeydkerdış ra ver gocega verqayti bıxebetne.',
 'tooltip-compareselectedversions' => 'Ferqê versiyonan bevinin',
 'tooltip-watch' => 'Eno pele listey tıyo seyir-kerdişi ri dek',
 'tooltip-watchlistedit-normal-submit' => 'Sernuşteya hewad',
-'tooltip-watchlistedit-raw-submit' => 'Listeyê seyr kerdişî newen ke',
+'tooltip-watchlistedit-raw-submit' => 'Listeyê seyri newen ke',
 'tooltip-recreate' => 'pel hewn a bışiyo zi tepiya biya',
 'tooltip-upload' => 'Bar bike',
 'tooltip-rollback' => '"Peyser biya" be yew tik pela îştirak(an)ê peyên|i(an) peyser ano.',
@@ -2631,7 +2683,7 @@ Gurênayışê nae de, beno ke sistemê şıma zerar bıvêno.",
 'newimages-summary' => 'Ena pela xasi dosyayi ke peni de bar biyayeyi mocnane.',
 'newimages-legend' => 'Filtre',
 'newimages-label' => 'Nameyê dosya ( ya zi parçe ey)',
-'showhidebots' => '($1 botan)',
+'showhidebots' => '(bota $1)',
 'noimages' => 'Çik çini yo.',
 'ilsubmit' => 'Cıgeyre',
 'bydate' => 'goreyê zemani',
@@ -2801,6 +2853,8 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-source' => 'Çıme',
 'exif-urgency' => 'Aciliyet',
 'exif-fixtureidentifier' => 'Namey fiksturi',
+'exif-locationdest' => 'Tarifê cay',
+'exif-contact' => 'Zanışiya irtibati',
 'exif-writer' => 'Nuştekar',
 'exif-languagecode' => 'Zıwan',
 'exif-iimversion' => 'Verqaydê IIM',
@@ -2822,6 +2876,7 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-giffilecomment' => "vatena dosya da GIF'i",
 'exif-intellectualgenre' => 'Babeta çêki',
 'exif-subjectnewscode' => 'Kodê muhtewa',
+'exif-scenecode' => 'IPTC kodê sahni',
 'exif-event' => 'Weqaya ke nameycıyo ravreno',
 'exif-organisationinimage' => 'Organizasyono ke ravêreno',
 'exif-personinimage' => 'Merdumo ke nameycıyo ravêreno',
@@ -3182,7 +3237,7 @@ Ti hem zi eşkeno [[Special:EditWatchlist/raw|edit the raw list]].',
 Eka vurnayîşê ti qediyo, Listeyê Seyr Kerdişî Rocaniye Bike "{{int:Watchlistedit-raw-submit}}" klik bike.
 Ti hem zi eşkeno [[Special:EditWatchlist|use the standard editor]].',
 'watchlistedit-raw-titles' => 'Seroğî:',
-'watchlistedit-raw-submit' => 'Listeyê seyr kerdişî xo update bike',
+'watchlistedit-raw-submit' => 'Listeyê seyri newen ke',
 'watchlistedit-raw-done' => 'Listeyê tuyê seyrkerdişi rocaniye biyo',
 'watchlistedit-raw-added' => '{{PLURAL:$1|1 seroğ|$1 seroğî}} de kerd:',
 'watchlistedit-raw-removed' => '{{PLURAL:$1|1 seroğ|$1 seroğî}} de wedarno:',
@@ -3227,6 +3282,9 @@ enê programiya piya [{{SERVER}}{{SCRIPTPATH}}/COPYING jew kopyay lisans dê GNU
 'version-software' => 'Softwareyê ronayi',
 'version-software-product' => 'Mal',
 'version-software-version' => 'Versiyon',
+'version-entrypoints' => "heruna dekewtış de GRE'i",
+'version-entrypoints-header-entrypoint' => 'Heruna dekewtışi',
+'version-entrypoints-header-url' => 'GRE',
 
 # Special:FilePath
 'filepath' => 'Raherê dosyayi',
@@ -3240,7 +3298,7 @@ Resımi be tam asayış mocniyayê, tipê dosyaê bini be programê cıyo elaqed
 'fileduplicatesearch-summary' => 'Dosyanê çıftan bınê têmiyankewteyan de bıgeyre.',
 'fileduplicatesearch-legend' => 'kopyayê ena dosya bigêre',
 'fileduplicatesearch-filename' => 'Nameyê dosyayi',
-'fileduplicatesearch-submit' => 'bigêre',
+'fileduplicatesearch-submit' => 'Cı geyre',
 'fileduplicatesearch-info' => '$1 × $2 piksel<br />Ebatê dosyayî: $3<br />Tipê MIMEî: $4',
 'fileduplicatesearch-result-1' => "Dosyayê ''$1î'' de hem-kopya çini yo.",
 'fileduplicatesearch-result-n' => "Dosyayê ''$1î'' de {{PLURAL:$2|1 hem-kopya|$2 hem-kopyayî'}} esto.",
@@ -3303,11 +3361,12 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 
 # Database error messages
 'dberr-header' => 'Ena Wiki de yew ğelet esta',
-'dberr-problems' => 'Qusir ma mevin! Site ma de nika ğeletê teknikî  esto.',
+'dberr-problems' => 'Mayê muxulêm!
+Ena sita dı newke xırabiya teknik esta.',
 'dberr-again' => 'Yew di dekika vinder u hin bar bike.',
-'dberr-info' => '(Nieşkenî serverê databaseyî bireso: $1)',
+'dberr-info' => '(Erzmelumati ra xızmetkari nêreseno: $1)',
 'dberr-usegoogle' => 'Ti eşkeno hem zi ser Google de bigêre.',
-'dberr-outofdate' => 'Note bike ke belki îdeksê tedesteyî rocaniye niyo.',
+'dberr-outofdate' => 'Ekê raten da ma deyê belki zi newen niyo qandê coy diqet kerê.',
 'dberr-cachederror' => 'Pel ke ti wazeno yew kopyayê cacheyî ay esto, ay belki rocaniyeyo.',
 
 # HTML forms
@@ -3339,6 +3398,7 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 'logentry-newusers-newusers' => '$1 deye namey karberi vıraziya',
 'logentry-newusers-create' => '$1 deye namey karberi vıraziya',
 'logentry-newusers-create2' => "$1'i $3 rê hesab vıraşt",
+'logentry-newusers-autocreate' => 'Hesabê $1 Otomatikmen vıraziya',
 'newuserlog-byemail' => 'pê e-mail ra paralo şiravt',
 
 # Feedback
@@ -3358,6 +3418,8 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 'api-error-duplicate-archive' => 'Ena {{PLURAL:$1|vurneyaya [$2 zey na dosya]| [zerrey cı zey $2 dosya]}} aseno,feqet {{PLURAL:$1|ena dosya|tewr veri}} besterneyaya.',
 'api-error-duplicate-archive-popup-title' => 'Ena {{PLURAL:$1|Dosya besterneyaya|dosya}} xora  besterneyaya.',
 'api-error-duplicate-popup-title' => '{{PLURAL:$1|dosyaya|dosyaya}} dılet',
+'api-error-filetype-banned' => 'Tipê ena dosya qedexe biya.',
+'api-error-illegal-filename' => 'Ena nameyê dosyayi kebul nibena.',
 'api-error-unknown-code' => "$1'dı jew xeta vıciye",
 'api-error-unknown-warning' => "$1'dı ikazo xırab:",
 'api-error-unknownerror' => "$1'dı jew xeta vıciye",
@@ -3369,6 +3431,7 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 'duration-days' => '($1 {{PLURAL:$1|roce|roci}})',
 'duration-weeks' => '$1 {{PLURAL: $1|hefte|heftey}}',
 'duration-years' => '$1 {{PLURAL:$1|serre|serri}}',
+'duration-decades' => '$1 {{PLURAL:$1|dades|dadesi}}',
 'duration-centuries' => '$1 {{PLURAL:$1|seserre|seserri}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenyum|milenyumi}}',
 
index 789e13e..d0dc072 100644 (file)
@@ -1079,9 +1079,9 @@ Zaruc, až historija wersijow nastawka jo njepśetergnjona.',
 'mergelogpagetext' => 'Dołojce jo lisćina nejnowejšych zjadnośenjow historije boka z drugej.',
 
 # Diffs
-'history-title' => 'Stawizny wersijow boka „$1“',
-'difference-title' => 'Rozdźěl mjazy wersijami "$1"',
-'difference-title-multipage' => 'Rozdźěl mjazy bokami "$1" a "$2"',
+'history-title' => '$1: Wersijowe stawizny',
+'difference-title' => '$1: Rozdźěl mjazy wersijami',
+'difference-title-multipage' => '$1 a $2: Rozdźěl mjazy bokami',
 'difference-multipage' => '(Rozdźěl mjazy bokami)',
 'lineno' => 'Rědka $1:',
 'compareselectedversions' => 'Wuzwólonej wersiji pśirownaś',
@@ -1176,6 +1176,7 @@ Zaruc, až historija wersijow nastawka jo njepśetergnjona.',
 'prefs-beta' => 'Preizkusne funkcije',
 'prefs-datetime' => 'Datum a cas',
 'prefs-labs' => 'Laborowe funkcije',
+'prefs-user-pages' => 'Wužywarske boki',
 'prefs-personal' => 'Wužywarski profil',
 'prefs-rc' => 'Aktualne změny',
 'prefs-watchlist' => 'Wobglědowańka',
@@ -1436,7 +1437,7 @@ Móžoš toś ten bok wužywaś, aby slědk stajił swóje nastajenja na standar
 'nchanges' => '$1 {{PLURAL:$1|změna|změnje|změny}}',
 'recentchanges' => 'Aktualne změny',
 'recentchanges-legend' => 'Opcije aktualnych změnow',
-'recentchangestext' => "How móžoš slědne změny we '''{{GRAMMAR:lokatiw|{{SITENAME}}}}''' slědowaś.",
+'recentchanges-summary' => "How móžoš slědne změny we '''{{GRAMMAR:lokatiw|{{SITENAME}}}}''' slědowaś.",
 'recentchanges-feed-description' => 'Slěduj z toś tym zapódaśim nejaktualnjejše změny we {{GRAMMAR:lokatiw|{{SITENAME}}}}.',
 'recentchanges-label-newpage' => 'Toś ta změna jo nowy bok napórała.',
 'recentchanges-label-minor' => 'To jo snadna změna',
@@ -1637,14 +1638,15 @@ $1',
 'backend-fail-writetemp' => 'Temporerna dataja njedajo se pisaś.',
 'backend-fail-closetemp' => 'Temporerna dataja njedajo se zacyniś.',
 'backend-fail-read' => 'Dataja $1 njedajo se cytaś.',
-'backend-fail-create' => 'Dataja $1 njedajo se napóraś.',
-'backend-fail-maxsize' => 'Dataja $1 njedajo se napóraś, dokulaž jo wětša ako {{PLURAL:$2|$2 bajt|$2 bajta|$2 bajty|$2 bajtow}}.',
+'backend-fail-create' => 'Dataja $1 njedajo se pisaś.',
+'backend-fail-maxsize' => 'Dataja $1 njedajo se pisaś, dokulaž jo wětša ako {{PLURAL:$2|jaden bajt|$2 bajta|$2 bajty|$2 bajtow}}.',
 'backend-fail-readonly' => 'Składowański backend "$1" dajo se tuchylu jano cytaś. Pśicyna jo była: "$2"',
 'backend-fail-synced' => 'Dataja "$1" jo  w internem składowańskem backenźe w inkonsistentnem stawje',
 'backend-fail-connect' => 'Zwisk z datajowym składowańskem backendom "$1" njejo móžno.',
 'backend-fail-internal' => 'W składowańskem backenźe "$1" jo njeznata zmólka nastała.',
 'backend-fail-contenttype' => 'Wopśimjeśowy typ dataje, kótaraž ma se na "$1" składowaś, njedajo se zwěsćiś.',
 'backend-fail-batchsize' => 'Štapjelowa dataja, kótaraž wopśimujo {{PLURAL:$1|jadnu operaciju|$1 operaciji|$1 operacije|$1 operacijow}},  jo se  na składowański backend pósłała; limit jo $2 {{PLURAL:$1|operaciju|operaciji|operacije|operacijow}}.',
+'backend-fail-usable' => 'Dataja $1 njedajo se dla njedosegajucych  abo felujucych zapisow pisaś.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Njejo žeden zwisk ze žurnaloweju datoweju banku za składowański backend "$1" móžno.',
@@ -1707,7 +1709,6 @@ Za optimalnu wěstotu img_auth.php jo znjemóžnjony.',
 'http-curl-error' => 'Zmólka pśi wótwółowanju URL: $1',
 'http-host-unreachable' => 'URL njejo był pśistupny.',
 'http-bad-status' => 'Wob cas HTTP-napšašowanje jo problem był: $1 $2',
-'http-truncated-body' => 'Wopśimjeśe napšašowanja jo se jano pó źělach pśiwzeło.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'URL njejo pśistupna.',
index 8dc6ecb..60b9298 100644 (file)
@@ -1277,6 +1277,8 @@ $1",
 
 # Diffs
 'history-title' => 'Ιστορικό εκδόσεων για τη σελίδα "$1"',
+'difference-title' => 'Διαφορά μεταξύ των αναθεωρήσεων του "$1"',
+'difference-title-multipage' => 'Διαφορά μεταξύ των σελίδων "$1" και "$2"',
 'difference-multipage' => '(Διαφορές μεταξύ των σελίδων)',
 'lineno' => 'Γραμμή $1:',
 'compareselectedversions' => 'Σύγκριση των εκδόσεων που έχουν επιλεγεί',
@@ -1371,6 +1373,7 @@ $1",
 'prefs-beta' => 'Λειτουργίες της Beta',
 'prefs-datetime' => 'Ημερομηνία και ώρα',
 'prefs-labs' => 'Λειτουργίες των Labs',
+'prefs-user-pages' => 'Σελίδες του χρήστη',
 'prefs-personal' => 'Στοιχεία χρήστη',
 'prefs-rc' => 'Πρόσφατες αλλαγές και εμφάνιση πολύ σύντομων άρθρων',
 'prefs-watchlist' => 'Λίστα παρακολούθησης',
@@ -1631,7 +1634,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|αλλαγή|αλλαγές}}',
 'recentchanges' => 'Πρόσφατες αλλαγές',
 'recentchanges-legend' => 'Επιλογές των πρόσφατων αλλαγών',
-'recentchangestext' => 'Παρακολουθήστε σε αυτή τη σελίδα τις πιο πρόσφατες αλλαγές στο Wiki.',
+'recentchanges-summary' => 'Παρακολουθείστε σε αυτή τη σελίδα τις πιο πρόσφατες αλλαγές στο Wiki.',
 'recentchanges-feed-description' => 'Παρακολουθήστε τις πιο πρόσφατες αλλαγές στο wiki σε αυτή τη ροή δεδομένων.',
 'recentchanges-label-newpage' => 'Αυτή η επεξεργασία δημιούργησε μια νέα σελίδα',
 'recentchanges-label-minor' => 'Αυτή είναι μια αλλαγή μικρής κλίμακας',
@@ -2684,7 +2687,7 @@ $1',
 'proxyblocker-disabled' => 'Η λειτουργία αυτή έχει απενεργοποιηθεί.',
 'proxyblockreason' => 'Η διεύθυνση IP σας έχει υποστεί φραγή γιατί είναι open proxy. Παρακαλούμε επικοινωνείστε με τον παροχέα υπηρεσιών Διαδικτύου που χρησιμοποιείτε ή με την τεχνική υποστήριξη, για να θέσετε υπ΄ όψη τους αυτό το σοβαρό θέμα ασφάλειας.',
 'proxyblocksuccess' => 'Ολοκληρώθηκε!',
-'sorbsreason' => 'Η διεύθνυση IP σας έχει χαρακτηρισθεί ως open proxy στο DNSBL.',
+'sorbsreason' => 'Η διεύθυνση IP σας έχει χαρακτηρισθεί ως open proxy στο DNSBL.',
 'sorbs_create_account_reason' => 'Η διεύθυνση IP σας έχει χαρακτηρισθεί open proxy στο DNSBL. Δεν μπορείτε να δημιουργήσετε λογαριασμό χρήστη.',
 'cant-block-while-blocked' => 'Δεν μπορείτε να φράξετε άλλους χρήστες ενώ είστε φραγμένος/η.',
 'cant-see-hidden-user' => 'Ο χρήστης που προσπαθείτε να αποκλείσετε έχει ήδη αποκλειστεί και αποκρυφτεί.
@@ -3837,6 +3840,7 @@ $5
 'logentry-delete-delete' => 'Ο/η $1 διέγραψε τη σελίδα $3',
 'logentry-delete-restore' => 'Ο/η $1 αποκατέστησε τη σελίδα $3',
 'logentry-delete-event' => '$1 άλλαξε την ορατότητα σε  {{PLURAL:$5|ένα γεγονός καταγραφής|$5 log events}} στο  $3: $4',
+'logentry-suppress-delete' => 'Ο $1 διέγραψε τη σελίδα $3',
 'revdelete-content-hid' => 'το περιεχόμενο αποκρύφθηκε',
 'revdelete-summary-hid' => 'Η σύνοψη επεξεργασίας αποκρύφθηκε',
 'revdelete-uname-hid' => 'Το όνομα χρήστη αποκρύφθηκε',
index 95495ce..e3515a0 100644 (file)
@@ -1792,6 +1792,7 @@ Note that their indexes of {{SITENAME}} content may be out of date.',
 'prefs-beta'                    => 'Beta features',
 'prefs-datetime'                => 'Date and time',
 'prefs-labs'                    => 'Labs features',
+'prefs-user-pages'              => 'User pages',
 'prefs-personal'                => 'User profile',
 'prefs-rc'                      => 'Recent changes',
 'prefs-watchlist'               => 'Watchlist',
@@ -2062,7 +2063,8 @@ Your e-mail address is not revealed when other users contact you.',
 'recentchanges'                     => 'Recent changes',
 'recentchanges-url'                 => 'Special:RecentChanges', # do not translate or duplicate this message to other languages
 'recentchanges-legend'              => 'Recent changes options',
-'recentchangestext'                 => 'Track the most recent changes to the wiki on this page.',
+'recentchanges-summary'             => 'Track the most recent changes to the wiki on this page.',
+'recentchangestext'                 => '-', # do not translate or duplicate this message to other languages
 'recentchanges-feed-description'    => 'Track the most recent changes to the wiki in this feed.',
 'recentchanges-label-newpage'       => 'This edit created a new page',
 'recentchanges-label-minor'         => 'This is a minor edit',
@@ -2284,8 +2286,9 @@ If the problem persists, contact an [[Special:ListUsers/sysop|administrator]].',
 'backend-fail-writetemp'     => 'Could not write to temporary file.',
 'backend-fail-closetemp'     => 'Could not close temporary file.',
 'backend-fail-read'          => 'Could not read file $1.',
-'backend-fail-create'        => 'Could not create file $1.',
-'backend-fail-maxsize'       => 'Could not create file $1 because it is larger than {{PLURAL:$2|one byte|$2 bytes}}.',
+'backend-fail-create'        => 'Could not write file $1.',
+'backend-fail-maxsize'       => 'Could not write file $1 because it is larger than {{PLURAL:$2|one byte|$2 bytes}}.',
+'backend-fail-usable'        => 'Could not write file $1 due to insufficient permissions or missing directories/containers.',
 'backend-fail-readonly'      => 'The storage backend "$1" is currently read-only. The reason given is: "\'\'$2\'\'"',
 'backend-fail-synced'        => 'The file "$1" is in an inconsistent state within the internal storage backends',
 'backend-fail-connect'       => 'Could not connect to storage backend "$1".',
@@ -2353,7 +2356,6 @@ For optimal security, img_auth.php is disabled.',
 'http-curl-error'       => 'Error fetching URL: $1',
 'http-host-unreachable' => 'Could not reach URL.',
 'http-bad-status'       => 'There was a problem during the HTTP request: $1 $2',
-'http-truncated-body'   => 'The request body was only partially received.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6'       => 'Could not reach URL',
index 2b89fd7..a3ccbfe 100644 (file)
@@ -700,6 +700,8 @@ $2',
 'ns-specialprotected' => 'Paĝoj en la {{ns:special}} nomspaco ne povas esti redaktataj.',
 'titleprotected' => "Ĉi titolo estas protektita de kreado de [[User:$1|$1]].
 La kialo donata estis ''$2''.",
+'invalidtitle-knownnamespace' => 'Nevalida titolo kun nomspaco "$2" kaj teksto "$3"',
+'invalidtitle-unknownnamespace' => 'Nevalida titolo kun nekonata nomspaca numero $1 kaj teksto "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Malbona konfiguro: nekonata virusa skanilo: ''$1''",
@@ -789,6 +791,7 @@ Neniu retpoŝto estos sendita pro iuj jenaj kialoj.',
 'invalidemailaddress' => 'La retadreso ne povas esti akceptita, ĉar ĝi verŝajne havas malvalidan formaton.
 Enigi bone formatita adreso aŭ malplenigi tiun kampon.',
 'cannotchangeemail' => 'Kontaj retpoŝtadresoj ne povas esti ŝanĝita en ĉi tiu vikio.',
+'emaildisabled' => 'Ĉi tiu paĝaro ne povas sendi retpoŝtojn.',
 'accountcreated' => 'Konto kreita',
 'accountcreatedtext' => 'La uzanto-konto por $1 estas kreita.',
 'createaccount-title' => 'Konto-kreado por {{SITENAME}}',
@@ -1234,8 +1237,8 @@ Bonvolu kontroli la protokolojn.',
 
 # Suppression log
 'suppressionlog' => 'Protokolo pri subigado',
-'suppressionlogtext' => 'Jen listo de forigoj kaj forbaroj pri enhavo kaŝita per administrantoj.
-Rigardu la [[Special:BlockList|IP-forbarliston]] por la listo de nune operaciaj forbaroj kaj forigoj.',
+'suppressionlogtext' => 'Malsupre estas listo de forigoj kaj forbaroj pri enhavo kaŝita de administrantoj.
+Rigardu la [[Special:BlockList|forbarliston]] por la listo de nune operaciaj forbaroj kaj forigoj.',
 
 # History merging
 'mergehistory' => 'Kunfandigi historiojn de paĝoj',
@@ -1267,7 +1270,9 @@ Certigu ke ĉi tiu ŝanĝo tenos kontinuecon de la historia paĝo.',
 'mergelogpagetext' => 'Jen listo de la plej lastatempaj kunigoj de unu paĝhistorio en alian.',
 
 # Diffs
-'history-title' => 'Redakto-historio de "$1"',
+'history-title' => 'Revizio-historio de "$1"',
+'difference-title' => '$1: Malsamoj inter versioj',
+'difference-title-multipage' => 'Malsamoj inter la paĝoj $1 kaj $2',
 'difference-multipage' => '(Diferenco inter paĝoj)',
 'lineno' => 'Linio $1:',
 'compareselectedversions' => 'Kompari la elektitajn versiojn',
@@ -1625,7 +1630,7 @@ Jen hazarde generita valoro por via uzo: $1',
 'nchanges' => '$1 {{PLURAL:$1|ŝanĝo|ŝanĝoj}}',
 'recentchanges' => 'Lastaj ŝanĝoj',
 'recentchanges-legend' => 'Opcioj pri lastaj ŝanĝoj',
-'recentchangestext' => 'Per ĉi tiu paĝo vi povas sekvi la plej lastajn ŝanĝojn en la {{SITENAME}}.',
+'recentchanges-summary' => 'Per ĉi tiu paĝo vi povas sekvi la plej lastajn ŝanĝojn en la {{SITENAME}}.',
 'recentchanges-feed-description' => 'Sekvi la plej lastatempajn ŝanĝojn al la vikio en ĉi tiu fonto.',
 'recentchanges-label-newpage' => 'Ĉi tiu redakto kreis novan paĝon',
 'recentchanges-label-minor' => 'Ĉi tiu estas eta redakto',
@@ -1816,7 +1821,7 @@ Se la problemo kontinuas, kontaku [[Special:ListUsers/sysop|sisteman administran
 'backend-fail-writetemp' => 'Ne povis skribi intertempan dosieron.',
 'backend-fail-closetemp' => 'Ne povis fermi provizoran dosieron.',
 'backend-fail-read' => 'Ne povas legi dosieron "$1".',
-'backend-fail-create' => 'Ne povas krei dosieron $1.',
+'backend-fail-create' => 'Ne povas skribi dosieron $1.',
 
 # Lock manager
 'lockmanager-notlocked' => 'Ne povis malŝlosi "$1"; ĝi ne estas ŝlosita.',
@@ -2577,7 +2582,7 @@ Jen la lasta ero de la forbara protokolo:',
 'badipaddress' => 'Neniu uzanto, aŭ la IP-adreso estas misformita.',
 'blockipsuccesssub' => 'Oni sukcese forbaris la adreson/nomon.',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] estas forbarita. <br />
-Vidu la [[Special:BlockList|liston de IP-forbaroj]] por kontroli.',
+Vidu la [[Special:BlockList|liston de forbaroj]] por kontroli.',
 'ipb-blockingself' => 'Vi preskaŭ forbaros vin mem! Ĉu vi certas ke vi volas fari ĉi tiel?',
 'ipb-confirmhideuser' => 'Vi preskaŭ forbaras uzanto kun "kaŝi uzanton" ŝalta. Ĉi tiu kaŝi la nomon de uzanto en ĉiuj listoj ka protokoloj. Ĉu vi certas ke vi volas fari ĉi tiel?',
 'ipb-edit-dropdown' => 'Redakti kialojn por forbaro.',
@@ -2629,7 +2634,7 @@ La kialo donita por la forbaro de $1 estis: "$2"',
 'blocklog-showsuppresslog' => 'Ĉi tiu uzanto estis forbarita kaj kaŝita antaŭe. Jen la protokolo pri subpremado por via informo:',
 'blocklogentry' => 'forbaris [[$1]] por daŭro de $2 $3',
 'reblock-logentry' => 'ŝanĝis forbarajn opciojn [[$1]] kun findato de $2 $3',
-'blocklogtext' => 'Ĉi tio estas protokolo pri forbaraj kaj malforbaraj agoj. Aŭtomate forbaritaj IP adresoj ne estas listigitaj. Vidu la [[Special:BlockList|IP forbarliston]] por ĉi-momente fobaritaj uzantoj kaj IP-adresoj.',
+'blocklogtext' => 'Ĉi tio estas protokolo pri forbaraj kaj malforbaraj agoj. Aŭtomate forbaritaj IP-adresoj ne estas listigitaj. Vidu la [[Special:BlockList|forbarliston]] por ĉi-momente forbaritaj uzantoj kaj IP-adresoj.',
 'unblocklogentry' => '$1 estis restarigita',
 'block-log-flags-anononly' => 'nur anonimaj uzantoj',
 'block-log-flags-nocreate' => 'kreado de kontoj malebligita',
index 6eb3119..8acfbf0 100644 (file)
@@ -24,6 +24,7 @@
  * @author Candalua
  * @author Capmo
  * @author Cerealito
+ * @author Ciencia Al Poder
  * @author Clerc
  * @author Crazymadlover
  * @author Cvmontuy
@@ -220,25 +221,25 @@ $magicWords = array(
        'currentmonth'            => array( '1', 'MESACTUAL', 'MESACTUAL2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentmonth1'           => array( '1', 'MESACTUAL1', 'CURRENTMONTH1' ),
        'currentmonthname'        => array( '1', 'MESACTUALCOMPLETO', 'NOMBREMESACTUAL', 'CURRENTMONTHNAME' ),
-       'currentmonthnamegen'     => array( '1', 'MESACTUALGENITIVO', 'CURRENTMONTHNAMEGEN', 'GENERADORNOMBREMESACTUAL' ),
-       'currentmonthabbrev'      => array( '1', 'MESACTUALABREVIADO', 'CURRENTMONTHABBREV', 'ABREVIACIONNOMBREMESACTUAL' ),
+       'currentmonthnamegen'     => array( '1', 'MESACTUALGENITIVO', 'CURRENTMONTHNAMEGEN' ),
+       'currentmonthabbrev'      => array( '1', 'MESACTUALABREVIADO', 'CURRENTMONTHABBREV' ),
        'currentday'              => array( '1', 'DÍAACTUAL', 'DIAACTUAL', 'DÍA_ACTUAL', 'DIA_ACTUAL', 'CURRENTDAY' ),
        'currentday2'             => array( '1', 'DÍAACTUAL2', 'DIAACTUAL2', 'DÍA_ACTUAL2', 'DIA_ACTUAL2', 'CURRENTDAY2' ),
        'currentdayname'          => array( '1', 'NOMBREDÍAACTUAL', 'NOMBREDIAACTUAL', 'CURRENTDAYNAME' ),
        'currentyear'             => array( '1', 'AÑOACTUAL', 'AÑO_ACTUAL', 'CURRENTYEAR' ),
        'currenttime'             => array( '1', 'HORA_MINUTOS_ACTUAL', 'HORAMINUTOSACTUAL', 'TIEMPOACTUAL', 'CURRENTTIME' ),
-       'currenthour'             => array( '1', 'HORAACTUAL', 'HORA_ACTUAL', 'CURRENTHOUR', 'HORA_MINUTOS_ACTUAL' ),
+       'currenthour'             => array( '1', 'HORAACTUAL', 'HORA_ACTUAL', 'CURRENTHOUR' ),
        'localmonth'              => array( '1', 'MESLOCAL', 'MESLOCAL2', 'LOCALMONTH', 'LOCALMONTH2' ),
        'localmonth1'             => array( '1', 'MESLOCAL1', 'LOCALMONTH1' ),
        'localmonthname'          => array( '1', 'MESLOCALCOMPLETO', 'NOMBREMESLOCAL', 'LOCALMONTHNAME' ),
-       'localmonthnamegen'       => array( '1', 'MESLOCALGENITIVO', 'LOCALMONTHNAMEGEN', 'GENERADORNOMBREMESLOCAL' ),
-       'localmonthabbrev'        => array( '1', 'MESLOCALABREVIADO', 'LOCALMONTHABBREV', 'ABREVIACIONMESLOCAL' ),
+       'localmonthnamegen'       => array( '1', 'MESLOCALGENITIVO', 'LOCALMONTHNAMEGEN' ),
+       'localmonthabbrev'        => array( '1', 'MESLOCALABREVIADO', 'LOCALMONTHABBREV' ),
        'localday'                => array( '1', 'DÍALOCAL', 'DIALOCAL', 'LOCALDAY' ),
        'localday2'               => array( '1', 'DIALOCAL2', 'DÍALOCAL2', 'LOCALDAY2' ),
        'localdayname'            => array( '1', 'NOMBREDIALOCAL', 'NOMBREDÍALOCAL', 'LOCALDAYNAME' ),
        'localyear'               => array( '1', 'AÑOLOCAL', 'LOCALYEAR' ),
-       'localtime'               => array( '1', 'HORAMINUTOSLOCAL', 'TIEMPOLOCAL', 'LOCALTIME', 'HORALOCAL' ),
-       'localhour'               => array( '1', 'HORALOCAL', 'LOCALHOUR', 'HORAMINUTOSLOCAL' ),
+       'localtime'               => array( '1', 'HORAMINUTOSLOCAL', 'TIEMPOLOCAL', 'LOCALTIME' ),
+       'localhour'               => array( '1', 'HORALOCAL', 'LOCALHOUR' ),
        'numberofpages'           => array( '1', 'NÚMERODEPÁGINAS', 'NUMERODEPAGINAS', 'NUMBEROFPAGES' ),
        'numberofarticles'        => array( '1', 'NÚMERODEARTÍCULOS', 'NUMERODEARTICULOS', 'NUMBEROFARTICLES' ),
        'numberoffiles'           => array( '1', 'NÚMERODEARCHIVOS', 'NUMERODEARCHIVOS', 'NUMBEROFFILES' ),
@@ -273,10 +274,10 @@ $magicWords = array(
        'img_center'              => array( '1', 'centro', 'centrado', 'centrada', 'centrar', 'center', 'centre' ),
        'img_framed'              => array( '1', 'marco', 'enmarcado', 'enmarcada', 'framed', 'enframed', 'frame' ),
        'img_frameless'           => array( '1', 'sinmarco', 'sin_enmarcar', 'sinenmarcar', 'frameless' ),
-       'img_page'                => array( '1', 'pagina=$1', 'página=$1', 'pagina_$1', 'página $1', 'page=$1', 'page $1' ),
+       'img_page'                => array( '1', 'pagina=$1', 'página=$1', 'pagina_$1', 'página_$1', 'page=$1', 'page $1' ),
        'img_border'              => array( '1', 'borde', 'border' ),
        'img_link'                => array( '1', 'vínculo=$1', 'vinculo=$1', 'enlace=$1', 'link=$1' ),
-       'sitename'                => array( '1', 'NOMBREDELSITIO', 'SITENAME', 'NOMBREDESITIO' ),
+       'sitename'                => array( '1', 'NOMBREDELSITIO', 'SITENAME' ),
        'ns'                      => array( '0', 'EN:', 'NS:' ),
        'localurl'                => array( '0', 'URLLOCAL', 'LOCALURL:' ),
        'localurle'               => array( '0', 'URLLOCALC:', 'LOCALURLE:' ),
@@ -1406,6 +1407,7 @@ Mientras tanto puedes buscar mediante Google, pero ten en cuenta que sus índice
 'prefs-beta' => 'Características de prueba',
 'prefs-datetime' => 'Fecha y hora',
 'prefs-labs' => 'Características de los laboratorios',
+'prefs-user-pages' => 'Páginas de usuario',
 'prefs-personal' => 'Perfil de usuario',
 'prefs-rc' => 'Cambios recientes',
 'prefs-watchlist' => 'Seguimiento',
@@ -1666,7 +1668,7 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'nchanges' => '$1 {{PLURAL:$1|cambio|cambios}}',
 'recentchanges' => 'Cambios recientes',
 'recentchanges-legend' => 'Opciones sobre cambios recientes',
-'recentchangestext' => 'Realiza un seguimiento de los cambios más recientes en el wiki en esta página.',
+'recentchanges-summary' => 'Sigue los cambios más recientes de la wiki en esta página.',
 'recentchanges-feed-description' => 'Realiza un seguimiento de los cambios más recientes en el wiki en este canal.',
 'recentchanges-label-newpage' => 'Esta edición creó una nueva página',
 'recentchanges-label-minor' => 'Esta es una edición menor',
@@ -1709,7 +1711,7 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'recentchangeslinked-to' => 'Muestra los cambios recientes en lugar de la página indicada',
 
 # Upload
-'upload' => 'Subir archivo',
+'upload' => 'Subir un archivo',
 'uploadbtn' => 'Subir un archivo',
 'reuploaddesc' => 'Regresar al formulario para subir.',
 'upload-tryagain' => 'Envíe la descripción del archivo modificado',
@@ -1819,6 +1821,20 @@ No se permite subir archivos Java, porque pueden causar que se puedan saltar res
 'filename-bad-prefix' => "El nombre del archivo que estás subiendo comienza por '''«$1»''', un nombre nada descriptivo de su contenido. Es un típico nombre de los que asignan automáticamente las cámaras digitales.
 
 Por favor, elige un nombre más descriptivo.",
+'filename-prefix-blacklist' => ' #<!-- deja esta línea exactamente como está --> <pre>
+# La sintaxis de esta página es la siguiente:
+#   * Todo texto que se encuentre después del carácter "#" hasta el final de la línea se tratará como un comentario y será ignorado
+#   * Cualquier línea que no esté en blanco será interpretada como un prefijo típico en nombres de archivo que suelen asignar automáticamente las cámaras digitales
+CIMG # Casio
+DSC_ # Nikon
+DSCF # Fuji
+DSCN # Nikon
+DUW # algunos teléfonos móviles / celulares
+IMG # genérico
+JD # Jenoptik
+MGP # Pentax
+PICT # misc.
+ #</pre> <!-- deja esta línea exactamente como está -->',
 'upload-success-subj' => 'Subida con éxito',
 'upload-success-msg' => 'Tu carga de [$2] fue exitosa. Está disponible aquí: [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'Problema en la carga',
@@ -1855,14 +1871,15 @@ $1',
 'backend-fail-writetemp' => 'No se pudo escribir en el archivo temporal.',
 'backend-fail-closetemp' => 'No se pudo cerrar el archivo temporal.',
 'backend-fail-read' => 'No se pudo leer el archivo «$1».',
-'backend-fail-create' => 'No se pudo crear el archivo «$1».',
-'backend-fail-maxsize' => 'No se pudo crear el archivo  $1  porque es mayor de {{PLURAL:$2|$2 bytes|$2 bytes}}.',
+'backend-fail-create' => 'No se pudo escribir el archivo $1.',
+'backend-fail-maxsize' => 'No se pudo escribir el archivo $1 porque es mayor de {{PLURAL:$2|un byte|$2 bytes}}.',
 'backend-fail-readonly' => 'El servidor (back-end) de almacenamiento "$1" está actualmente en estado de sólo lectura. La razón aducida fue: "$2"',
 'backend-fail-synced' => 'El archivo "$1" se encuentra en un estado incoherente dentro de los servidores (backends) de almacenamiento interno',
 'backend-fail-connect' => 'No se pudo conectar al servidor (backend) de almacenamiento "$1".',
 'backend-fail-internal' => 'Se ha producido un error desconocido en el servidor (backend) de almacenamiento "$1".',
 'backend-fail-contenttype' => 'No se pudo determinar el tipo de contenido del archivo a guardar en " $1 ".',
 'backend-fail-batchsize' => 'El servidor (back-end) de almacenamiento ha suministrado un lote de $1 {{PLURAL:$1|operación|operaciones}} de archivo; el límite es de $2 {{PLURAL:$2|operación|operaciones}}.',
+'backend-fail-usable' => 'No se pudo escribir el archivo $1 debido a permisos insuficientes o directorios/contenedores desaparecidos.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'No se pudo conectar a la base de datos del registro del sistema de almacenamiento "$1".',
@@ -1925,7 +1942,6 @@ Para óptima seguridad, img_auth.php está desactivado.',
 'http-curl-error' => 'Error al recuperar el URL: $1',
 'http-host-unreachable' => 'No fue posible acceder a la URL.',
 'http-bad-status' => 'Ha habido un problema durante la solicitud HTTP: $1 $2',
-'http-truncated-body' => 'El cuerpo solicitado sólo fue recibido parcialmente.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'No se pudo alcanzar la URL',
@@ -1996,6 +2012,7 @@ Tal vez desee editar la descripción de su [$2 página de descripción del archi
 'uploadnewversion-linktext' => 'Subir una nueva versión de este archivo',
 'shared-repo-from' => 'de $1',
 'shared-repo' => 'un repositorio compartido',
+'filepage.css' => '/* Los estilos CSS colocados aquí se incluirán en las páginas de descripción de archivos, incluso en los wikis externos que incluyan estas páginas */',
 
 # File reversion
 'filerevert' => 'Revertir $1',
@@ -3042,6 +3059,11 @@ Permite añadir una razón al resumen de edición.',
 'vector.css' => '/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios que usen la piel Vector */',
 'print.css' => '/* Los estilos CSS colocados aquí afectarán la impresión */',
 'handheld.css' => '/* Los estilos CSS colocados aquí afectarán a los dispositivos móviles basados en las pieles configuradas en $wgHandheldStyle */',
+'noscript.css' => '/* Los estilos CSS colocados aquí se aplicarán a los usuarios que hayan desactivado el JavaScript en su navegador */',
+'group-autoconfirmed.css' => '/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios del grupo Usuarios autoconfirmados */',
+'group-bot.css' => '/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios del grupo Bots */',
+'group-sysop.css' => '/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios del grupo Administradores */',
+'group-bureaucrat.css' => '/* Los estilos CSS colocados aquí se aplicarán para todos los usuarios del grupo Burócratas */',
 
 # Scripts
 'common.js' => '/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */',
@@ -3054,6 +3076,10 @@ Permite añadir una razón al resumen de edición.',
 'simple.js' => '/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios que usen la piel Simple */',
 'modern.js' => '/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios que usen la piel Moderna */',
 'vector.js' => '/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios que usen la piel Vector */',
+'group-autoconfirmed.js' => '/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Usuarios autoconfirmados */',
+'group-bot.js' => '/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Bots */',
+'group-sysop.js' => '/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Administradores */',
+'group-bureaucrat.js' => '/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios del grupo Burócratas */',
 
 # Metadata
 'notacceptable' => 'El servidor wiki no puede proveer los datos en un formato que su cliente (navegador) pueda entender.',
@@ -3139,6 +3165,7 @@ $1',
 Ejecutarlo podría comprometer la seguridad de su equipo.",
 'imagemaxsize' => "Límite de tamaño de imagen:<br />''(para páginas de descripción de archivo)''",
 'thumbsize' => 'Tamaño de las vistas en miniatura:',
+'widthheight' => '$1 × $2',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:|página|páginas}}',
 'file-info' => 'tamaño de archivo: $1; tipo MIME: $2',
 'file-info-size' => '$1 × $2 píxeles; tamaño de archivo: $3; tipo MIME: $4',
@@ -3168,8 +3195,10 @@ Ejecutarlo podría comprometer la seguridad de su equipo.",
 'sp-newimages-showfrom' => 'Mostrar nuevas imágenes empezando por $2, $1',
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds-abbrev' => '$1s',
 'minutes-abbrev' => '$1m',
 'hours-abbrev' => '$1h',
+'days-abbrev' => '$1d',
 'seconds' => '{{PLURAL:$1|un segundo|$1 segundos}}',
 'minutes' => '{{PLURAL:$1|un minuto|$1 minutos}}',
 'hours' => '{{PLURAL:$1|una hora|$1 horas}}',
index 1085a2e..6a7663d 100644 (file)
@@ -68,6 +68,7 @@ $specialPageAliases = array(
        'DeletedContributions'      => array( 'Kustutatud_kaastöö' ),
        'Disambiguations'           => array( 'Täpsustusleheküljed' ),
        'DoubleRedirects'           => array( 'Kahekordsed_ümbersuunamised' ),
+       'EditWatchlist'             => array( 'Jälgimisloendi_redigeerimine' ),
        'Emailuser'                 => array( 'E-kirja_saatmine' ),
        'Export'                    => array( 'Lehekülgede_eksport' ),
        'Fewestrevisions'           => array( 'Vähim_muudatusi' ),
@@ -75,6 +76,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'Failitee' ),
        'Import'                    => array( 'Lehekülgede_import' ),
        'Invalidateemail'           => array( 'E-posti_kinnituse_tühistamine', 'Tühista_e-posti_kinnitus' ),
+       'JavaScriptTest'            => array( 'JavaScripti_katsetamine' ),
        'BlockList'                 => array( 'Blokeerimisloend' ),
        'LinkSearch'                => array( 'Välislinkide_otsimine', 'Otsi_välislinke' ),
        'Listadmins'                => array( 'Ülemaloend' ),
@@ -99,6 +101,7 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'Minu_kaastöö' ),
        'Mypage'                    => array( 'Minu_lehekülg' ),
        'Mytalk'                    => array( 'Minu_aruteluleht' ),
+       'Myuploads'                 => array( 'Minu_üleslaaditu' ),
        'Newimages'                 => array( 'Uued_failid' ),
        'Newpages'                  => array( 'Uued_leheküljed' ),
        'PasswordReset'             => array( 'Parooli_lähtestamine' ),
@@ -117,6 +120,7 @@ $specialPageAliases = array(
        'Specialpages'              => array( 'Erileheküljed' ),
        'Statistics'                => array( 'Arvandmestik' ),
        'Tags'                      => array( 'Märgised' ),
+       'Unblock'                   => array( 'Blokeerimise_eemaldamine' ),
        'Uncategorizedcategories'   => array( 'Kategoriseerimata_kategooriad' ),
        'Uncategorizedimages'       => array( 'Kategoriseerimata_failid' ),
        'Uncategorizedpages'        => array( 'Kategoriseerimata_leheküljed' ),
@@ -128,6 +132,7 @@ $specialPageAliases = array(
        'Unusedtemplates'           => array( 'Kasutamata_mallid' ),
        'Unwatchedpages'            => array( 'Jälgimata_leheküljed' ),
        'Upload'                    => array( 'Faili_üleslaadimine' ),
+       'UploadStash'               => array( 'Üleslaaditu_alghoidla' ),
        'Userlogin'                 => array( 'Sisselogimine' ),
        'Userlogout'                => array( 'Väljalogimine' ),
        'Userrights'                => array( 'Kasutaja_õigused' ),
@@ -670,6 +675,8 @@ $2',
 'filereadonlyerror' => 'Faili "$1" ei saa muuta, sest hoidla "$2" on kirjutuskaitstud.
 
 Administraator lukustas selle järgmisel põhjusel: "$3".',
+'invalidtitle-knownnamespace' => 'Vigane pealkiri nimeruumis "$2" tekstiga "$3"',
+'invalidtitle-unknownnamespace' => 'Vigane pealkiri nimeruuminumbriga $1 ja tekstiga "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Viga konfiguratsioonis: tundmatu viirusetõrje: ''$1''",
@@ -1223,6 +1230,8 @@ Navigeerimislinkide kasutamine tühistab redaktsioonide valiku.',
 
 # Diffs
 'history-title' => 'Lehekülje "$1" muudatuste ajalugu',
+'difference-title' => 'Erinevus lehekülje "$1" redaktsioonide vahel',
+'difference-title-multipage' => 'Erinevus lehekülgede "$1" ja "$2" vahel',
 'difference-multipage' => '(Lehekülgede erinevus)',
 'lineno' => 'Rida $1:',
 'compareselectedversions' => 'Võrdle valitud redaktsioone',
@@ -1583,7 +1592,7 @@ See ei tohi olla pikem kui $1 {{PLURAL:$1|sümbol|sümbolit}}.',
 'nchanges' => '$1 {{PLURAL:$1|muudatus|muudatust}}',
 'recentchanges' => 'Viimased muudatused',
 'recentchanges-legend' => 'Viimaste muudatuste seaded',
-'recentchangestext' => 'Jälgi sellel leheküljel viimaseid muudatusi.',
+'recentchanges-summary' => 'Jälgi sellel leheküljel viimaseid muudatusi.',
 'recentchanges-feed-description' => 'Jälgi vikisse tehtud viimaseid muudatusi.',
 'recentchanges-label-newpage' => 'See muudatus lõi uue lehekülje',
 'recentchanges-label-minor' => 'See on pisiparandus',
@@ -1779,9 +1788,10 @@ Kui probleem ei kao, võta ühendust [[Special:ListUsers/sysop|administraatoriga
 'backend-fail-writetemp' => 'Ajutist faili ei saa kirjutada.',
 'backend-fail-closetemp' => 'Ajutist faili ei saa sulgeda.',
 'backend-fail-read' => 'Faili $1 ei saa lugeda.',
-'backend-fail-create' => 'Faili $1 ei saa luua.',
-'backend-fail-maxsize' => 'Faili $1 ei saa luua, sest see on {{PLURAL:$2|ühest baidist|$2 baidist}} suurem.',
+'backend-fail-create' => 'Faili $1 ei saa kirjutada.',
+'backend-fail-maxsize' => 'Faili $1 ei saa kirjutada, sest see on {{PLURAL:$2|ühest baidist|$2 baidist}} suurem.',
 'backend-fail-contenttype' => 'Faili, mida soovitakse talletada asukohas "$1", sisutüüpi saanud kindlaks teha.',
+'backend-fail-usable' => 'Faili $1 ei saa ebapiisavate õiguste või puuduvate kataloogide/konteinerite tõttu kirjutada.',
 
 # Lock manager
 'lockmanager-notlocked' => 'Rada "$1" ei saa lukust lahti teha, sest see pole lukus.',
@@ -1928,7 +1938,7 @@ Võib-olla tahad redigeerida selle faili [$2 sealset kirjelduslehekülge].',
 'filedelete-otherreason' => 'Muu või täiendav põhjus:',
 'filedelete-reason-otherlist' => 'Muu põhjus',
 'filedelete-reason-dropdown' => '*Harilikud kustutamise põhjused
-** Autoriõiguste rikkumine
+** Autoriõiguse rikkumine
 ** Duplikaat',
 'filedelete-edit-reasonlist' => 'Redigeeri kustutamise põhjuseid',
 'filedelete-maintenance' => 'Failide kustutamine ja taastamine on hoolduse ajaks keelatud.',
@@ -3272,7 +3282,7 @@ Kui faili on rakendustarkvaraga töödeldud, võib osa andmeid olla muudetud võ
 # EXIF attributes
 'exif-compression-1' => 'Pakkimata',
 
-'exif-copyrighted-true' => 'Autoriõigustega kaitstud',
+'exif-copyrighted-true' => 'Kaitstud',
 'exif-copyrighted-false' => 'Avalikus omandis',
 
 'exif-unknowndate' => 'Kuupäev teadmata',
index 801b18a..30179c1 100644 (file)
@@ -1359,7 +1359,7 @@ $1 {{PLURAL:$1|karakteretik|karakteretik}} behera izan behar ditu.',
 'nchanges' => '{{PLURAL:$1|aldaketa 1|$1 aldaketa}}',
 'recentchanges' => 'Aldaketa berriak',
 'recentchanges-legend' => 'Azken aldaketen aukerak',
-'recentchangestext' => 'Orrialde honetan wiki honetan egindako azken aldaketak erakusten dira.',
+'recentchanges-summary' => 'Orrialde honetan wiki honetan egindako azken aldaketak erakusten dira.',
 'recentchanges-feed-description' => 'Sindikazio honetan wikian eginiko azkeneko aldaketak jarrai daitezke.',
 'recentchanges-label-newpage' => 'Aldaketa honek orrialde berri bat sortu du',
 'recentchanges-label-minor' => 'Hau aldaketa txikia da',
index 7970945..1a18c19 100644 (file)
@@ -984,7 +984,7 @@ Amás premiti qu'otrus ussuárius contatin contigu pol mé la tu página d'ussu
 'nchanges' => '$1 {{PLURAL:$1|chambu|chambus}}',
 'recentchanges' => 'Úrtimus chambus',
 'recentchanges-legend' => 'Ocionis enos úrtimus chambus',
-'recentchangestext' => 'Sigui los úrtimus chambus d´esti güiqui nesta páhina.',
+'recentchanges-summary' => 'Sigui los úrtimus chambus d´esti güiqui nesta páhina.',
 'recentchanges-feed-description' => 'Sigui los úrtimus chambus nel güiqui nesti feed.',
 'rcnote' => "Embahu se {{PLURAL:$1|muestra '''1''' chambu|muestran los úrtimus '''$1''' chambus}} {{PLURAL:$2|dendi ayel|enus úrtimus '''$2''' dias}}, de $4 a las $5.",
 'rcnotefrom' => "Embahu se muestran los chambus hechus dendi el '''$2''' (hata el '''$1''').",
index 6c609da..506834d 100644 (file)
@@ -78,10 +78,10 @@ $specialPageAliases = array(
        'Booksources'               => array( 'منابع_کتاب' ),
        'BrokenRedirects'           => array( 'تغییرمسیرهای_خراب' ),
        'Categories'                => array( 'رده‌ها' ),
-       'ChangeEmail'               => array( 'تغییر_پست_الکترونیکی' ),
+       'ChangeEmail'               => array( 'تغییر_رایانامه', 'تغییر_پست_الکترونیکی' ),
        'ChangePassword'            => array( 'از_نو_کردن_گذرواژه' ),
        'ComparePages'              => array( 'مقایسه_صفحات' ),
-       'Confirmemail'              => array( 'تایید_پست_الکترونیکی' ),
+       'Confirmemail'              => array( 'تایید_رایانامه', 'تایید_پست_الکترونیکی' ),
        'Contributions'             => array( 'مشارکت‌ها' ),
        'CreateAccount'             => array( 'ایجاد_حساب_کاربری' ),
        'Deadendpages'              => array( 'صفحه‌های_بن‌بست' ),
@@ -95,7 +95,7 @@ $specialPageAliases = array(
        'FileDuplicateSearch'       => array( 'جستجوی_پرونده_تکراری' ),
        'Filepath'                  => array( 'مسیر_پرونده' ),
        'Import'                    => array( 'درون_ریزی_صفحه' ),
-       'Invalidateemail'           => array( 'باطل_کردن_پست_الکترونیکی' ),
+       'Invalidateemail'           => array( 'باطل_کردن_رایانامه', 'باطل_کردن_پست_الکترونیکی' ),
        'BlockList'                 => array( 'فهرست_بستن_نشانی_آی‌پی' ),
        'LinkSearch'                => array( 'جستجوی_پیوند' ),
        'Listadmins'                => array( 'فهرست_مدیران' ),
@@ -265,7 +265,7 @@ $dateFormats = array(
 );
 
 $magicWords = array(
-       'redirect'                => array( '0', '#تغییرمسیر', '#REDIRECT' ),
+       'redirect'                => array( '0', '#تغییر_مسیر', '#تغییرمسیر', '#تغییرمسیر', '#REDIRECT' ),
        'notoc'                   => array( '0', '__بی‌فهرست__', '__NOTOC__' ),
        'nogallery'               => array( '0', '__بی‌نگارخانه__', '__NOGALLERY__' ),
        'forcetoc'                => array( '0', '__بافهرست__', '__FORCETOC__' ),
@@ -305,6 +305,7 @@ $magicWords = array(
        'pagenamee'               => array( '1', 'نام‌صفحه‌کد', 'نام_صفحه_کد', 'PAGENAMEE' ),
        'namespace'               => array( '1', 'فضای‌نام', 'فضای_نام', 'NAMESPACE' ),
        'namespacee'              => array( '1', 'فضای‌نام‌کد', 'فضای_نام_کد', 'NAMESPACEE' ),
+       'namespacenumber'         => array( '1', 'شماره_فضای_نام', 'شماره‌فضای‌نام', 'NAMESPACENUMBER' ),
        'talkspace'               => array( '1', 'فضای‌بحث', 'فضای_بحث', 'TALKSPACE' ),
        'talkspacee'              => array( '1', 'فضای‌بحث‌کد', 'فضای_بحث_کد', 'TALKSPACEE' ),
        'subjectspace'            => array( '1', 'فضای‌موضوع', 'فضای‌مقاله', 'فضای_موضوع', 'فضای_مقاله', 'SUBJECTSPACE', 'ARTICLESPACE' ),
@@ -375,6 +376,7 @@ $magicWords = array(
        'plural'                  => array( '0', 'جمع:', 'PLURAL:' ),
        'fullurl'                 => array( '0', 'نشانی‌کامل:', 'نشانی_کامل:', 'FULLURL:' ),
        'fullurle'                => array( '0', 'نشانی‌کامل‌کد:', 'نشانی_کامل_کد:', 'FULLURLE:' ),
+       'canonicalurl'            => array( '0', 'نشانی_استاندارد:', 'نشانی‌استاندارد:', 'CANONICALURL:' ),
        'lcfirst'                 => array( '0', 'ابتداکوچک:', 'ابتدا_کوچک:', 'LCFIRST:' ),
        'ucfirst'                 => array( '0', 'ابتدابزرگ:', 'ابتدا_بزرگ:', 'UCFIRST:' ),
        'lc'                      => array( '0', 'ک:', 'LC:' ),
@@ -413,8 +415,8 @@ $magicWords = array(
        'url_path'                => array( '0', 'مسیر', 'PATH' ),
        'url_wiki'                => array( '0', 'ویکی', 'WIKI' ),
        'url_query'               => array( '0', 'دستور', 'QUERY' ),
-       'defaultsort_noerror'     => array( '0', 'بدون‌خطا', 'noerror' ),
-       'defaultsort_noreplace'   => array( '0', 'جایگزین‌نکن', 'noreplace' ),
+       'defaultsort_noerror'     => array( '0', 'بدون‌خطا', 'بدون_خطا', 'noerror' ),
+       'defaultsort_noreplace'   => array( '0', 'جایگزین‌نکن', 'جایگزین_نکن', 'noreplace' ),
 );
 
 # Harakat are intentionally not included in the linkTrail. Their addition should
@@ -828,6 +830,8 @@ $2',
 'filereadonlyerror' => "تغییر پرونده «$1» ممکن نیست چون مخزن پرونده «$2» در حالت فقط خواندنی قرار دارد.
 
 مدیری که آن را قفل کرده چنین توضیحی را ذکر کرده:  ''$3''.",
+'invalidtitle-knownnamespace' => 'عنوان نامعتبر با فضای نام «$2» و متن «$3»',
+'invalidtitle-unknownnamespace' => 'عنوان نامعتبر با فضای نام ناشناختهٔ شمارهٔ $1 و متن «$2»',
 
 # Virus scanner
 'virus-badscanner' => "پیکربندی بد: پویشگر ویروس ناشناخته: ''$1''",
@@ -1180,8 +1184,8 @@ $2
 'semiprotectedpagewarning' => "'''توجه:''' این صفحه قفل شده‌است تا تنها کاربران ثبت‌نام‌کرده قادر به ویرایش آن‌ باشند.
 آخرین موارد سیاهه در زیر آمده‌است:",
 'cascadeprotectedwarning' => "'''هشدار:''' این صفحه به علت قرارگرفتن در {{PLURAL:$1|صفحهٔ|صفحه‌های}} آبشاری-محافظت‌شدهٔ زیر قفل شده‌است تا فقط مدیران بتوانند ویرایشش کنند.",
-'titleprotectedwarning' => "'''هشدار: این صفحه قفل شده‌است به شکلی که برای ایجاد آن [[Special:ListGroupRights|اختیارات خاصی]] لازم است.'''
-ٱحرین موارد سیاهه در زیر آمده است:",
+'titleprotectedwarning' => "'''هشدار: این صفحه به شکلی قفل شده‌است که برای ایجاد آن [[Special:ListGroupRights|اختیارات خاصی]] لازم است.'''
+آخرین موارد سیاهه در زیر آمده است:",
 'templatesused' => '{{PLURAL:$1|الگوی|الگوهای}} به‌کاررفته در این صفحه:',
 'templatesusedpreview' => '{{PLURAL:$1|الگوی|الگوهای}} استفاده شده در این پیش‌نمایش:',
 'templatesusedsection' => '{{PLURAL:$1|الگوی|الگوهای}} استفاده شده در این بخش:',
@@ -1405,7 +1409,9 @@ $1",
 'mergelogpagetext' => 'در زیر سیاهه آخرین موارد ادغام تاریخچه یک صفحه در صفحه‌ای دیگر را می‌بینید.',
 
 # Diffs
-'history-title' => 'تاریخچهٔ ویرایش‌های «$1»',
+'history-title' => '$1: تاریخچهٔ ویرایش‌ها',
+'difference-title' => '$1: تفاوت بین نسخه‌ها',
+'difference-title-multipage' => '$1 و $2: تفاوت بین صفحه‌ها',
 'difference-multipage' => '(تفاوت بین صفحه‌ها)',
 'lineno' => 'سطر $1:',
 'compareselectedversions' => 'مقایسهٔ نسخه‌های انتخاب‌شده',
@@ -1768,7 +1774,7 @@ $1",
 'nchanges' => '$1 تغییر',
 'recentchanges' => 'تغییرات اخیر',
 'recentchanges-legend' => 'گزینه‌های تغییرات اخیر',
-'recentchangestext' => 'آخرین تغییرات ویکی را در این صفحه پی‌گیری کنید.',
+'recentchanges-summary' => 'آخرین تغییرات ویکی را در این صفحه پی‌گیری کنید.',
 'recentchanges-feed-description' => 'آخرین تغییرات ویکی را در این خوراک پی‌گیری کنید.',
 'recentchanges-label-newpage' => 'این ویرایش صفحه‌ای جدید ایجاد کرد',
 'recentchanges-label-minor' => 'این ویرایش جزئی‌است',
@@ -1971,8 +1977,8 @@ $1',
 'backend-fail-writetemp' => 'امکان نوشتن بر روی پروندهٔ موقتی وجود ندارد.',
 'backend-fail-closetemp' => 'نمی‌توان پروندهٔ موقتی را بست.',
 'backend-fail-read' => 'نمی‌توان پروندهٔ $1 را خواند.',
-'backend-fail-create' => 'نمی‌توان پروندهٔ $1 را ایجاد کرد.',
-'backend-fail-maxsize' => 'نمی‌توان پروندهٔ $1 را ایجاد کرد چون بزرگتر از {{PLURAL:$2|یک بایت|$2 بایت}} است.',
+'backend-fail-create' => 'نمی‌توان بر روی پروندهٔ $1 اطلاعات نوشت.',
+'backend-fail-maxsize' => 'نمی‌توان بر روی پروندهٔ $1 اطلاعات نوشت چون بزرگتر از {{PLURAL:$2|یک بایت|$2 بایت}} است.',
 'backend-fail-readonly' => 'پشتیبان «$1» درحال حاضر در وضیت فقط خواندنی است. دلیل ارائه شده چنین است: «$2»',
 'backend-fail-synced' => 'پرونده «$1» در پشتیبان‌های ذخیره داخلی در وضعیتی ناپایدار قرار دارد',
 'backend-fail-connect' => 'ارتباط با پشیبان ذخیره «$1» برقرار نشد.',
@@ -2099,6 +2105,10 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 برای اطلاعات بیشتر لطفاً [$2 صفحهٔ توضیحات پرونده] را ببینید.',
 'sharedupload-desc-here' => 'این پرونده در $1 قرار دارد و ممکن است در پروژه‌های دیگر هم استفاده شود.
 توضیحات موجود در [$2 صفحهٔ توضیحات پرونده در آنجا]، در زیر نشان داده شده‌است.',
+'sharedupload-desc-edit' => 'این پرونده از $1 است و می‌تواند توسط پروژه‌های دیگر هم استفاده شود.
+اگر خواستید می‌توانید توضیحات پرونده را از [$2 صفحهٔ توضیحاتش] در آنجا ویرایش کنید.',
+'sharedupload-desc-create' => 'این پرونده از $1 است و می‌تواند توسط پروژه‌های دیگر هم استفاده شود.
+اگر خواستید می‌توانید توضیحات پرونده را از [$2 صفحهٔ توضیحاتش] در آنجا ویرایش کنید.',
 'filepage-nofile' => 'پرونده‌ای با این نام وجود ندارد.',
 'filepage-nofile-link' => 'پرونده‌ای با این نام وجود ندارد، اما شما می‌توانید آن را [$1 بارگذاری کنید].',
 'uploadnewversion-linktext' => 'بارگذاری نسخهٔ جدیدی از پرونده',
index 451d867..01f3410 100644 (file)
@@ -17,6 +17,7 @@
  * @author Jafeluv
  * @author Kaganer
  * @author Kulmalukko
+ * @author Linnea
  * @author Mobe
  * @author Nedergard
  * @author Nike
@@ -692,6 +693,8 @@ $2',
 'filereadonlyerror' => 'Tiedostoa "$1" ei voi muuttaa, koska jaettu mediavarasto "$2" on "vain luku" -tilassa.
 
 Lukituksen asettanut ylläpitäjä on antanut seuraavan syyn toimenpiteelle: "$3".',
+'invalidtitle-knownnamespace' => 'Virheellinen nimike nimitilaan "$2" ja teksti "$3"',
+'invalidtitle-unknownnamespace' => 'Virheellinen nimi tuntemattomassa nimitilassa $1 ja tekstissä $2',
 
 # Virus scanner
 'virus-badscanner' => "Virheellinen asetus: Tuntematon virustutka: ''$1''",
@@ -1047,6 +1050,10 @@ Nämä muuttujat on jätetty käsittelemättä.",
 'parser-template-loop-warning' => 'Mallinesilmukka havaittu: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Mallineen rekursioraja ylittyi ($1)',
 'language-converter-depth-warning' => 'Kielimuuntimen syvyysraja ylittyi ($1)',
+'node-count-exceeded-category' => 'Sivut, joissa solmumäärä on ylitetty',
+'node-count-exceeded-warning' => 'Sivu ylitti solmumäärän',
+'expansion-depth-exceeded-category' => 'Sivut, joissa laajentamissyvyys on ylitetty',
+'expansion-depth-exceeded-warning' => 'Sivu ylitti laajentamissyvyyden.',
 
 # "Undo" feature
 'undo-success' => 'Kumoaminen onnistui. Valitse <em>tallenna</em> toteuttaaksesi muutokset.',
@@ -1218,6 +1225,8 @@ Uuden ja vanhan sivun muutoksien pitää muodostaa jatkumo – ne eivät saa men
 
 # Diffs
 'history-title' => 'Sivun $1 muutoshistoria',
+'difference-title' => 'Ero sivun "$1" versioiden välillä',
+'difference-title-multipage' => 'Erot sivujen "$1" ja "$2" välillä',
 'difference-multipage' => '(Sivujen välinen eroavaisuus)',
 'lineno' => 'Rivi $1:',
 'compareselectedversions' => 'Vertaile valittuja versioita',
@@ -1574,7 +1583,7 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'nchanges' => '$1 {{PLURAL:$1|muutos|muutosta}}',
 'recentchanges' => 'Tuoreet muutokset',
 'recentchanges-legend' => 'Tuoreiden muutosten asetukset',
-'recentchangestext' => 'Tällä sivulla voi seurata tuoreita {{GRAMMAR:illative|{{SITENAME}}}} tehtyjä muutoksia.',
+'recentchanges-summary' => 'Tällä sivulla voi seurata tuoreita {{GRAMMAR:illative|{{SITENAME}}}} tehtyjä muutoksia.',
 'recentchanges-feed-description' => 'Tällä sivulla voi seurata tuoreita {{GRAMMAR:illative|{{SITENAME}}}} tehtyjä muutoksia.',
 'recentchanges-label-newpage' => 'Tämä muutos loi uuden sivun',
 'recentchanges-label-minor' => 'Tämä on pieni muutos',
@@ -1751,6 +1760,7 @@ $1',
 'upload-too-many-redirects' => 'URL sisälsi liian monta ohjausta',
 'upload-unknown-size' => 'Tuntematon koko',
 'upload-http-error' => 'HTTP-virhe: $1',
+'upload-copy-upload-invalid-domain' => 'Tiedostojen tallentamista tästä verkko-osoitteesta ei ole sallittu.',
 
 # File backend
 'backend-fail-stream' => 'Tiedoston $1 virtauttaminen epäonnistui.',
@@ -1769,7 +1779,10 @@ $1',
 'backend-fail-closetemp' => 'Väliaikaista tiedostoa ei voitu sulkea.',
 'backend-fail-read' => 'Tiedostoa $1 ei voitu lukea.',
 'backend-fail-create' => 'Tiedostoa $1 ei voitu luoda.',
+'backend-fail-maxsize' => 'Tiedostoa $1 ei voitu luoda, koska se on suurempi kuin {{PLURAL:$2|yksi tavu|$2 tavua}}.',
 'backend-fail-connect' => 'Varastojärjestelmään "$1" ei saada yhteyttä.',
+'backend-fail-contenttype' => 'Tiedostoa ei voitu tallentaa kohteeseen $1, koska tiedostomuotoa ei voitu määrittää.',
+'backend-fail-usable' => 'Ei voitu luoda tiedostoa $1, koska käyttöoikeudet eivät riittäneet tai hakemisto puuttuu.',
 
 # Lock manager
 'lockmanager-notlocked' => 'Kohteen $1 lukitusta ei voitu poistaa, koska se ei ole lukittu.',
@@ -2039,7 +2052,7 @@ Jokaisella rivillä on linkit ensimmäiseen ja toiseen ohjaukseen sekä toisen o
 'protectedpages-indef' => 'Vain ikuisesti suojatut',
 'protectedpages-cascade' => 'Vain laajennetusti suojatut',
 'protectedpagestext' => 'Seuraavat sivut ovat suojattuja siirtämiseltä tai muutoksilta',
-'protectedpagesempty' => 'Ei suojattu sivuja.',
+'protectedpagesempty' => 'Mitään sivuja ei ole tällä hetkellä suojattu näillä asetuksilla.',
 'protectedtitles' => 'Suojatut sivunimet',
 'protectedtitlestext' => 'Seuraavien sivujen luonti on estetty.',
 'protectedtitlesempty' => 'Ei suojattuja sivunimiä näillä hakuehdoilla.',
@@ -2806,6 +2819,9 @@ Tallenna tiedot koneellesi ja tuo ne tällä sivulla.',
 'import-invalid-interwiki' => 'Määritellystä wikistä ei voi tuoda.',
 'import-error-edit' => 'Sivua $1 ei tuotu, koska sinulla ei ole oikeutta muokata sitä.',
 'import-error-create' => 'Sivua $1 ei tuotu, koska sinulla ei ole oikeutta luoda sitä.',
+'import-error-interwiki' => 'Sivua $1 ei voitu tuoda, koska sen nimi on varattu ulkoisen linkittämisen (interwiki).',
+'import-error-special' => 'Sivua $1 ei tuoda, koska se kuuluu nimitilaan, joka ei salli sivuja.',
+'import-error-invalid' => 'Sivua $1 ei tuoda, koska sen nimi ei kelpaa.',
 
 # Import log
 'importlogpage' => 'Tuontiloki',
diff --git a/languages/messages/MessagesFit.php b/languages/messages/MessagesFit.php
new file mode 100644 (file)
index 0000000..567e114
--- /dev/null
@@ -0,0 +1,714 @@
+<?php
+/** Meänkieli (Meänkieli)
+ *
+ * See MessagesQqq.php for message documentation incl. usage of parameters
+ * To improve a translation please visit http://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ * @author Kaganer
+ * @author Mestos
+ */
+
+$fallback = 'fi';
+
+$messages = array(
+# User preference toggles
+'tog-underline' => 'Linkitten alleviivaus',
+'tog-justify' => 'Tassaa kappalheet',
+'tog-hideminor' => 'Piilota pienet muutokset vereksen muutoksitten listasta',
+'tog-hidepatrolled' => 'Piilota tarkastetut muutokset vereksen muutoksitten listasta',
+'tog-newpageshidepatrolled' => 'Piilota tarkastetut sivut uusitten sivuitten listalta',
+'tog-extendwatchlist' => 'Laajena valvontalistaa näyttämhään kaikki tehtyt muutokset eikä vain viimisimät.',
+'tog-usenewrc' => 'Käytä avanseerattu verekset muutokset (vaatii JavaScript)',
+'tog-numberheadings' => 'Nymreeraa rypriikit',
+'tog-showtoolbar' => 'Näytä työneuvopalkki (JavaScript)',
+'tog-editondblclick' => 'Mookkaa sivuja kaksoisknapituksella (JavaScript)',
+'tog-editsection' => 'Aktiveeraa seksuuni mookkaus [mookkaus]-linkilä',
+'tog-editsectiononrightclick' => 'Aktiveeraa seksuuni mookkaus oikeapuolen klikkauksella seksuuni tittelhiin (JavaScript)',
+'tog-showtoc' => 'Näytä sisältölista (sivuile, joila on yli 3 rypriikkiä)',
+'tog-rememberpassword' => 'Muista minun lokkauksen tässä weppilukijassa (eninthään $1 {{PLURAL:$1|päivä|päivää}})',
+'tog-watchcreations' => 'Lissää sivut mitä luon valvontasivule',
+'tog-watchdefault' => 'Lissää sivut mitä mie mookkaan valvontasivule',
+'tog-watchmoves' => 'Lissää sivut mitä mie siirän minun valvontasivule',
+'tog-watchdeletion' => 'Lissää sivut mitä otan poies valvontasivule',
+'tog-minordefault' => 'Markeeraa auttomaattisesti kaikki muutokset pieneks',
+'tog-previewontop' => 'Näytä esitarkastelu mookkauspaikan yläpuolela',
+'tog-previewonfirst' => 'Näytä esitarkastelu kun mookkaus alethaan',
+'tog-nocache' => 'Älä säästä sivuja weppilukijan välimuisthiin',
+'tog-enotifwatchlistpages' => 'Lähätä e-postipreivi mulle kun sivu minun valvontalistala on muutettu',
+'tog-enotifusertalkpages' => 'Lähätä sähköposti, kun käyttäjäsivun keskustelusivu muuttuu',
+'tog-enotifminoredits' => 'Lähätä epostieto pienistäki muutoksista',
+'tog-enotifrevealaddr' => 'Näytä minun eposti atressin muile lähetetyissä ilmoituksissa',
+'tog-shownumberswatching' => 'Näytä kuinka moni käyttäjä valvoo sivua',
+'tog-oldsig' => 'Nykynen allekirjotus',
+'tog-fancysig' => 'Mookkaamaton allekirjotus ilman auttomaattista linkkiä',
+'tog-externaleditor' => 'Käytä ekterniä tekstiedituuria stantartina. Vain kokenheile käyttäjile, vaatii taattorin asetuksitten muuttamista. Käytä eksterniä tekstiedituuria oletuksena. Vain kokeneille käyttäjille, vaatii selaimen asetusten muuttamista. (<span class="plainlinks">[[//www.mediawiki.org/wiki/Manual:External_editors Ohje]</span>)',
+
+# Dates
+'sunday' => 'pyhä',
+'monday' => 'maanantai',
+'tuesday' => 'tiistai',
+'wednesday' => 'keskiviikko',
+'thursday' => 'tuorestai',
+'friday' => 'perjantai',
+'saturday' => 'lauantai',
+'sun' => 'py',
+'mon' => 'ma',
+'tue' => 'ti',
+'wed' => 'ke',
+'thu' => 'tuo',
+'fri' => 'pe',
+'sat' => 'la',
+'january' => 'tammikuu',
+'february' => 'helmikuu',
+'march' => 'maaliskuu',
+'april' => 'huhtikuu',
+'may_long' => 'toukokuu',
+'june' => 'kesäkuu',
+'july' => 'heinäkuu',
+'august' => 'elokuu',
+'september' => 'syyskuu',
+'october' => 'lokakuu',
+'november' => 'marraskuu',
+'december' => 'joulukuu',
+'january-gen' => 'tammikuun',
+'february-gen' => 'helmikuun',
+'march-gen' => 'maaliskuun',
+'april-gen' => 'huhtikuun',
+'may-gen' => 'toukokuun',
+'june-gen' => 'kesäkuun',
+'july-gen' => 'heinäkuun',
+'august-gen' => 'elokuun',
+'september-gen' => 'syyskuun',
+'october-gen' => 'lokakuun',
+'november-gen' => 'marraskuun',
+'december-gen' => 'joulukuun',
+'jan' => 'tammikuu',
+'feb' => 'helmikuu',
+'mar' => 'maaliskuu',
+'apr' => 'huhtikuu',
+'may' => 'toukokuu',
+'jun' => 'kesäkuu',
+'jul' => 'heinäkuu',
+'aug' => 'elokuu',
+'sep' => 'syyskuu',
+'oct' => 'lokakuu',
+'nov' => 'marraskuu',
+'dec' => 'joulukuu',
+
+# Categories related messages
+'pagecategories' => '{{PLURAL:$1|Katekuurit|Katekuurit}}',
+'category_header' => 'Sivut, jokka on katekuurissa "$1"',
+'subcategories' => 'Alakatekuurit',
+'category-media-header' => 'Katekuurin ”$1” sisältämät fiilit',
+'category-empty' => "''Tässä katekuuriassa ei ole sivuja eikä fiiliä.''",
+'hidden-categories' => '{{PLURAL:$1|Piilotettu katekuuri|Piilotetut katekuurit}}',
+'category-subcat-count' => '{{PLURAL:$2|Tässä katekuurissa on vain seuraava alakatekuuri.|{{PLURAL:$1|Seuraava alakatekuuri kuuluu|Seuraavat $1 alakatekuuria kuuluvat}} tähhään katekuurihaan. Alakatekuuritten kokonaismäärä katekuurissa on $2.}}',
+'category-article-count' => '{{PLURAL:$2|Tässä katekuurissa on vain seuraava sivu.|Seuraava {{PLURAL:$1|sivu on|$1 sivut on}} tässä katekuurissa, kahen joukosta $2 }}',
+'category-file-count' => '{{PLURAL:$2|Tässä katekuurissa on vain seuraava sivu.|Seuraava {{PLURAL:$1|fiili|$1 fiilit}} (kaikkians $2) on tässä katekuurissa.}}',
+'listingcontinuesabbrev' => 'jatkuu',
+'noindex-category' => 'Ei-indekseerattuja sivuja',
+
+'about' => 'Tietoja',
+'newwindow' => '(aukasee uuessa klasissa)',
+'cancel' => 'Lopeta',
+'mytalk' => 'Minun keskustelu',
+'navigation' => 'Navikeerinki',
+
+# Cologne Blue skin
+'qbedit' => 'Mookkaa',
+'qbpageoptions' => 'Tämä sivu',
+'qbpageinfo' => 'Sisältö',
+'qbmyoptions' => 'Minun inställninkit',
+'qbspecialpages' => 'Spesiaali sivut',
+'faq' => 'Useasti kysytyt kysymykset',
+'faqpage' => 'Project:Useasti kysytyt kysymykset',
+
+# Vector skin
+'vector-action-addsection' => 'Lissää aine',
+'vector-action-delete' => 'Ota poies',
+'vector-action-move' => 'Siirä',
+'vector-action-protect' => 'Suojaa',
+'vector-action-undelete' => 'Pane takashiin',
+'vector-action-unprotect' => 'Muuta suojaa',
+'vector-simplesearch-preference' => 'Ota käythöön paranetut hakuehotukset (vain Vector-ulkoasu)',
+'vector-view-create' => 'Luo',
+'vector-view-edit' => 'Mookkaa',
+'vector-view-history' => 'Näytä histuuria',
+'vector-view-view' => 'Lue',
+'vector-view-viewsource' => 'Näytä lähekooti',
+'actions' => 'Toiminat',
+'namespaces' => 'Nimityhjyyet',
+'variants' => 'Varianttia',
+
+'errorpagetitle' => 'Virhe',
+'returnto' => 'Takashiin sivule $1.',
+'tagline' => 'Asiasta {{SITENAME}}',
+'help' => 'Apua',
+'search' => 'Haku',
+'searchbutton' => 'Hae',
+'searcharticle' => 'Mene',
+'history' => 'Sivun histuuria',
+'history_short' => 'Histuuria',
+'printableversion' => 'Printtausmaholinen versuuni',
+'permalink' => 'Ikunen linkki',
+'edit' => 'Mookkaa',
+'create' => 'Luo sivu',
+'delete' => 'Ota poies',
+'protect' => 'Suojaa',
+'protect_change' => 'muuta',
+'newpage' => 'Uusi sivu',
+'talkpagelinktext' => 'Keskustelu',
+'personaltools' => 'Henkilökohtaiset työneuvot',
+'talk' => 'Keskustelu',
+'views' => 'Näyttöjä',
+'toolbox' => 'Työneuvot',
+'otherlanguages' => 'Muila kielilä',
+'redirectedfrom' => '(Ohjattu sivulta $1)',
+'lastmodifiedat' => 'Sivua on viimeksi muutettu $1 kello $2.',
+'jumpto' => 'Hyppää:',
+'jumptonavigation' => 'Navikeerinki',
+'jumptosearch' => 'Hae',
+
+# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
+'aboutsite' => 'Asiasta {{GRAMMAR:elative|{{SITENAME}}}}',
+'aboutpage' => 'Project: Tioista',
+'copyrightpage' => '{{ns:project}}:Tekijänoikeuet',
+'currentevents' => 'Vereksiä tapahtumia',
+'currentevents-url' => 'Project: Vereksiä tapahtumia',
+'disclaimers' => 'Vastuuvaphaus',
+'disclaimerpage' => 'Project: Ylheinen varoitus',
+'edithelp' => 'Mookkausapua',
+'edithelppage' => 'Help: Kuinka sivuja mookathaan',
+'helppage' => 'Help: Sisältö',
+'mainpage' => 'Alkusivu',
+'mainpage-description' => 'Alkusivu',
+'portal' => 'Kaikitten purthaali',
+'portal-url' => 'Project: Kaikitten purthaali',
+'privacy' => 'Tietosuojakäytäntö',
+'privacypage' => 'Project: Intekriteettisääntö',
+
+'retrievedfrom' => 'Nouettu osoitheesta $1',
+'youhavenewmessages' => 'Sulla on $1 ($2).',
+'newmessageslink' => 'uusia meiliä',
+'newmessagesdifflink' => 'viiminen muutos',
+'editsection' => 'mookkaa',
+'editold' => 'mookkaa',
+'viewsourceold' => 'näytä lähekooti',
+'editlink' => 'mookkaa',
+'viewsourcelink' => 'näytä lähekooti',
+'editsectionhint' => 'Mookkaa seksuunia $1',
+'toc' => 'Sisältö',
+'site-atom-feed' => '$1-Atom-syöttö',
+'page-atom-feed' => '$1 (Atom-syöttö)',
+'red-link-title' => '$1 (sivua ei ole)',
+
+# Short words for each namespace, by default used in the namespace tab in monobook
+'nstab-main' => 'Sivu',
+'nstab-user' => 'Käyttäjäsivu',
+'nstab-special' => 'Spesiaali sivut',
+'nstab-project' => 'Prujektisivu',
+'nstab-image' => 'Fiili',
+'nstab-template' => 'Malli',
+'nstab-category' => 'Katekuuri',
+
+# General errors
+'missing-article' => 'Sivun sisältöä ei löytyny taattapaasista: $1 $2.
+
+Useimiten tämä johtuu vanhentuneesta vertailu- tai histuuriasivulinkistä poistethuun sivhuun.
+
+Jos kysheessä ei ole poistettu sivu, olet piian löytäny virheen ohjelmassa.
+Ilmota tämän sivun atressi wikin [[Special:ListUsers/sysop|atministratöörile]].',
+'missingarticle-rev' => '(versuuni: $1)',
+'badtitle' => 'Virheelinen titteli',
+'badtitletext' => 'Pyytämästi sivurypriikki oli virheelinen, tyhjä eli titteli on väärin linkitetty muusta wikistä. Se saattaa sisältää yhen eli monta sympoolia, joita ei saa käyttää sivutittelissä.',
+'viewsource' => 'Näytä lähekooti',
+
+# Login and logout pages
+'yourname' => 'Käyttäjänimi',
+'yourpassword' => 'Salasana',
+'yourpasswordagain' => 'Salasana uuesti',
+'remembermypassword' => 'Muista minun lokkauksen tässä taattorissa (korkeinthaans $1 {{PLURAL:$1|päivä|päivää}})',
+'login' => 'Lokkaa sisäle',
+'nav-login-createaccount' => 'Lokkaa sisäle / luo konttu',
+'loginprompt' => 'Lokkauksheen tähhään {{SITENAME}} tarvithaan ette olet aktiveeranu kuukit .',
+'userlogin' => 'Lokkaa sisäle/ luo konttu',
+'userlogout' => 'Lokkaa ulos',
+'nologin' => "Eikos sulla ole käyttäjäkonttua, '''$1'''.",
+'nologinlink' => 'Luo käyttäjäkonttu',
+'createaccount' => 'Luo käyttäjäkonttu',
+'gotaccount' => "Jos sulla on käyttäjäkonttu,  voit '''$1'''.",
+'gotaccountlink' => 'Lokkaa sisäle',
+'userlogin-resetlink' => 'Unhoutitko sinun salasanan?',
+'mailmypassword' => 'Lähätä e-postissa uusi salasana',
+'loginlanguagelabel' => 'Kieli: $1',
+
+# Edit page toolbar
+'bold_sample' => 'Lihava teksti',
+'bold_tip' => 'Lihava teksti',
+'italic_sample' => 'Kyrsiveerattu teksti',
+'italic_tip' => 'Kyrsiveerattu',
+'link_sample' => 'linkin nimi',
+'link_tip' => 'Sisäinen linkki',
+'extlink_sample' => 'http://www.example.com linkin rypriikki',
+'extlink_tip' => 'Eksterni linkki (muista http:// eessä)',
+'headline_sample' => 'Rypriikkiteksti',
+'headline_tip' => 'Aste 2 rypriikki',
+'nowiki_sample' => 'Lissää muotoilematon teksti tähhään',
+'nowiki_tip' => 'Iknureeraa wiki formateerinkin',
+'image_tip' => 'Piilotettu fiili',
+'media_tip' => 'Linkki fiilhiin',
+'sig_tip' => 'Allekirjotus aikaleimala',
+'hr_tip' => 'Horisontaali linja (käytethään säästävästi)',
+
+# Edit pages
+'summary' => 'Yhteenveto',
+'minoredit' => 'Tämä on pieni muutos',
+'watchthis' => 'Valvo tätä sivua',
+'savearticle' => 'Säästä sivu',
+'preview' => 'Etukätheen katto',
+'showpreview' => 'Näytä esikuvvaus',
+'showdiff' => 'Näytä muutokset',
+'anoneditwarning' => "'''Varotus:''' Et ole lokanu sisäle.
+IP-atressi säästethään tämän sivun muutoshistuuriassa.",
+'newarticle' => '(Uusi)',
+'newarticletext' => 'Linkki vei sinun sivule, joka ei vielä ole.
+Saatat luoa sivun kirjottamalla alla olehvaan kenthään (katto [[{{MediaWiki:Helppage}}|apusivu]] lisää tietoja).
+Jos et halua luoa sivua, käytä browserin "takashiin" knappia.',
+'noarticletext' => 'Tällä hetkellä tällä sivulla ei ole tekstiä.
+Tällä hetkelä tällä sivula ei ole tekstiä.
+Saatat [[Special:Search/{{PAGENAME}}|hakea sivun nimelä]] muilta sivuilta,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} hakea aiheesheen liittyviä lokkia]
+eli [{{fullurl:{{FULLPAGENAME}}|action=edit}} mookata tätä sivua]</span>.',
+'noarticletext-nopermission' => 'Tällä hetkelä tällä sivula ei ole tekstiä.
+Saatat [[Special:Search/{{PAGENAME}}|hakea sivun nimelä]] muilta sivuilta,
+eli <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} hakea relevantista lokista]
+eli [{{fullurl:{{FULLPAGENAME}}|action=edit}} mookata tätä sivua]</span>.',
+'previewnote' => "'''Tämä on vasta sivun etukattelu. Sivua ei ole vielä säästetty!'''",
+'editing' => 'Mookathaan sivua $1',
+'editingsection' => 'Mookathaan $1 (seksuuni)',
+'templatesused' => 'Tällä sivula {{PLURAL:$1|käytetty malli|käytetyt mallit}}:',
+'template-protected' => '(suojattu)',
+'template-semiprotected' => '(osittain suojattu)',
+'hiddencategories' => 'Tämä sivu kuuluu {{PLURAL:$1|seuraavhaan piilotethuun katekuurihaan|seuraavhiin piilotethuin katekuurhiin}}:',
+'permissionserrorstext-withaction' => 'Sulla ei ole luppaa {{lcfirst:$2}} {{PLURAL:$1|seuraavasta syystä|seuraavista syistä}} johtuen:',
+'recreate-moveddeleted-warn' => "''Varotus: Olet luomassa sivua, joka on vasta otettu poies.'''",
+'moveddeleted-notice' => 'Tämä sivu on otettu poies. Alla on tämän sivun poistotieto ja lokkaushistuuria referensinä',
+
+# Parser/template warnings
+'post-expand-template-inclusion-warning' => 'Varotus: Tämä sivu sisältää liian suurta mallikootia.
+Joitakin mallia ei tulta säästämhään.',
+'post-expand-template-inclusion-category' => 'Sivut missä mallikootin sisältö on liian suuri',
+'post-expand-template-argument-warning' => 'Varotus: Tällä sivula on ainaki yks malliparameetteri, jonka koko on liian suuri ekspansuunissa.
+Nämät parameetterit on poistettu.',
+'post-expand-template-argument-category' => 'Sivut missä on poistettuja malliparameetteria',
+
+# History pages
+'viewpagelogs' => 'Näytä tämän sivun lokit',
+'currentrev-asof' => 'Nykynen versuuni $1',
+'revisionasof' => 'Versuuni $1',
+'revision-info' => 'Versuuni hetkelä $1 – tehny $2',
+'previousrevision' => 'Vanheempi versuuni',
+'nextrevision' => 'Uuempi versuuni',
+'currentrevisionlink' => 'Nykynen versuuni',
+'cur' => 'nyk.',
+'last' => 'eel.',
+'histlegend' => 'Eron valinta: markkeeraa klikkiruuissa ette pääset vertaamhaan versuunia, ja paina enter eli knaphiin kaikhiin alla. 
+Merkinät: (nyk.) = eroavaisuuet nykyisheen versuunhiin, (eel.) = eroavaisuuet eelisheen versuunhiin, <span class="minor">p</span> = pieni muutos',
+'history-fieldset-title' => 'Plaavaa muutoshistuuriaa',
+'history-show-deleted' => 'Vain poistetut',
+'histfirst' => 'Ensimäiset',
+'histlast' => 'Viimisimät',
+
+# Revision feed
+'history-feed-item-nocomment' => '$1 ($2)',
+
+# Revision deletion
+'rev-delundel' => 'näytä/piilota',
+'revdel-restore' => 'muuta näkyvyyttä',
+'revdel-restore-deleted' => 'poistetut muutokset',
+'revdel-restore-visible' => 'Näkyvät muutokset',
+
+# Merge log
+'revertmerge' => 'Pane takashiin yhistäminen',
+
+# Diffs
+'history-title' => 'Sivun $1 muutoshistuuria',
+'lineno' => 'Rivi $1:',
+'compareselectedversions' => 'Vertaile valittuja sivu versuunia',
+'editundo' => 'kumota',
+'diff-multi' => '(Näytetyitten versuunitten välissä on {{PLURAL:$1|yks mookkaus|$1 versuunit, jokka on {{PLURAL:$2|yhen käyttäjän tekemiä|$2 eri käyttäjän tekemiä}}}}.)',
+
+# Search results
+'searchresults' => 'Hakutulokset',
+'searchresults-title' => 'Hakutulokset hakusanale ”$1”',
+'prevn' => 'eelinen {{PLURAL:$1|$1}}',
+'nextn' => '{{PLURAL:$1|seuraava|$1 seuraavaa}} →',
+'prevn-title' => 'eelinen$1 {{PLURAL:$1|resyltaatit|resyltaatit}}',
+'nextn-title' => 'eelinen$1 {{PLURAL:$1|resyltaatit|resyltaatit}}',
+'shown-title' => 'Näytä $1 {{PLURAL:$1|resyltaatti|resyltaatti}} sivu sivulta',
+'viewprevnext' => 'Näytä ($1 {{int:pipe-separator}} $2) ($3)',
+'searchmenu-exists' => "'''Sivu [[:$1]] löytyy tästä wikistä.'''",
+'searchmenu-new' => "'''Luo sivu ''[[:$1]]'' tähhaän wikhiin.'''",
+'searchprofile-articles' => 'Sisältösivut',
+'searchprofile-project' => 'Apu ja prujektisivut',
+'searchprofile-images' => 'Mylttimeetia',
+'searchprofile-everything' => 'Kaikki',
+'searchprofile-advanced' => 'Avanseerattu',
+'searchprofile-articles-tooltip' => 'Hae nimityhjyyestä $1',
+'searchprofile-project-tooltip' => 'Hae nimityhjyyestä $1',
+'searchprofile-images-tooltip' => 'Hae fiiliä',
+'searchprofile-everything-tooltip' => 'Hae kaikesta (keskustelusivut kans)',
+'searchprofile-advanced-tooltip' => 'Hae tietyissä nimityhjyissä',
+'search-result-size' => '$1 ({{PLURAL:$2|1 sana|$2 sannaa}})',
+'search-result-category-size' => '{{PLURAL:$1|1 jäsen|$1 jäsentä}} ({{PLURAL:$2|1 alakatekuuria|$2 alakatekuuriaa}}, {{PLURAL:$3|1 fiili|$3 fiiliä}})',
+'search-redirect' => '(ohjaus $1)',
+'search-section' => '(seksuuni $1)',
+'search-suggest' => 'Tarkoititko: $1',
+'searchrelated' => 'relateerattu',
+'searchall' => 'kaikki',
+'showingresultsheader' => "{{PLURAL:$5|Resyltaatit'''$1'''–'''$3'''|Resyltaatit'''$1'''–'''$2''' kaiken joukosta '''$3''' }} haule '''$4'''",
+'search-nonefound' => 'Ei yhtään resyltaattia sinun kysymyksheen',
+
+# Preferences page
+'mypreferences' => 'Omat inställninkit',
+'youremail' => 'E-posti:',
+'yourrealname' => 'Oikea nimi',
+'prefs-help-email' => 'E-postin atressi on vapa, mutta tekkee maholiseks ette lähättää sulle salasanan meilissä, jos unhoutat sen.',
+'prefs-help-email-others' => 'Saatat kans antaa muitten käyttäjitten ottaa ottaa yhteyttä sinhuun sähköpostila. Sin atressi ei näy toisen käyttäjän ottaessa sinhuun yhteyttä.',
+
+# Associated actions - in the sentence "You do not have permission to X"
+'action-edit' => 'mookkaa tätä sivua',
+
+# Recent changes
+'nchanges' => '$1 {{PLURAL:$1|muutos|muutosta}}',
+'recentchanges' => 'Verekset muutokset',
+'recentchanges-legend' => 'Vereksitten muutoksitten inställninkit',
+'recentchanges-summary' => 'Seuraa viimiset muutokset wikin tällä sivula',
+'recentchanges-feed-description' => 'Tällä sivula saatat seurata wikin vereksiä muutoksia',
+'recentchanges-label-newpage' => 'Tämä mookkaus loi uuen sivun',
+'recentchanges-label-minor' => 'Tämä on pieni muutos',
+'recentchanges-label-bot' => 'Tämän muutoksen teki botti',
+'recentchanges-label-unpatrolled' => 'Tätä muutosta ei ole vielä tarkistettu',
+'rcnote' => 'Alla on {{PLURAL:$1|yks muutos|$1 vereksimät muutokset}} {{PLURAL:$2|yhen päivän|$2 viimi päivän}} ajalta $4 kello $5 asti.',
+'rcnotefrom' => "Alla on muutokset '''$2'''lähtien. (korkeinthaans '''$1''' näytethään).",
+'rclistfrom' => 'Näytä uuet muutokset jälkhiin $1',
+'rcshowhideminor' => '$1 pienet muutokset',
+'rcshowhidebots' => '$1 ropootit',
+'rcshowhideliu' => '
+$1 sisäle lokaattuja käyttäjiä',
+'rcshowhideanons' => '$1 anonyymit käyttäjät',
+'rcshowhidepatr' => '$1 tarkistetut muutokset',
+'rcshowhidemine' => '$1 omat muutokset',
+'rclinks' => 'Näytä $1 verestä muutosta viimisitten $2 päivitten aikana.<br />$3',
+'diff' => 'ero',
+'hist' => 'histuuria',
+'hide' => 'Piilota',
+'show' => 'Näytä',
+'minoreditletter' => 'p',
+'newpageletter' => 'U',
+'boteditletter' => 'b',
+'rc-enhanced-expand' => 'Näytä detaljit (JavaScript)',
+'rc-enhanced-hide' => 'Piilota detaljit',
+
+# Recent changes linked
+'recentchangeslinked' => 'Relateerattuja muutoksia',
+'recentchangeslinked-toolbox' => 'Relateerattuja muutoksia',
+'recentchangeslinked-title' => 'Muutokset relatterattuja "$1"',
+'recentchangeslinked-noresult' => 'Ei muutoksia linkathuin sivhuin annetulla aikakauela',
+'recentchangeslinked-summary' => 'Tämä on lista vereksistä muutoksista sivhuin, joihin on linkattu erikoiselta sivulta. Sivut sinun  [[Special:Watchlist|valvontalistala]] on markeerattu lihavala tyylilä',
+'recentchangeslinked-page' => 'Sivun nimi',
+'recentchangeslinked-to' => 'Näytä muutokset sivhuin, jolla sen eestä on linkki annethuun sivhuun',
+
+# Upload
+'upload' => 'Lattaa ylös fiili',
+'uploadlogpage' => 'Ylöslattauksen loki',
+'filedesc' => 'Yhteenveto',
+'uploadedimage' => 'lattasi ylös [[$1]]',
+
+'license' => 'Lisensi',
+'license-header' => 'Lisensi',
+
+# File description page
+'file-anchor-link' => 'Fiili',
+'filehist' => 'Fiilin histuuria',
+'filehist-help' => 'Klikkaa taattymia/aikaa niin näet fiilin kuinka se oli siihen aikhaan',
+'filehist-revert' => 'pane takashiin',
+'filehist-current' => 'nykynen',
+'filehist-datetime' => 'Päivä/Aika',
+'filehist-thumb' => 'Peukalokuva',
+'filehist-thumbtext' => 'Peukalokuva säästetystä versuunista  $1',
+'filehist-user' => 'Käyttäjä',
+'filehist-dimensions' => 'Timensuunit',
+'filehist-comment' => 'Komentti',
+'imagelinks' => 'Fiilin käyttö',
+'linkstoimage' => 'Seuraava {{PLURAL:$1|sivu |$1 sivut }} länkkaavat tähhään fiilhiin:',
+'nolinkstoimage' => 'Ei ole yhtään sivua joka linkkaa tähhään fiilhiin.',
+'sharedupload-desc-here' => 'Tämä fiili on jaettu kohtheesta $1 ja muut prujektit saattavat käyttää sitä.
+Tiot [$2 fiilin kuvvaussivulta] näkyvät tässä alla.',
+
+# Random page
+'randompage' => 'Satunhainen sivu',
+
+# Statistics
+'statistics' => 'Statistiikkaa',
+
+'disambiguationspage' => 'Template:Haarainsivu',
+
+# Miscellaneous special pages
+'nbytes' => '$1 {{PLURAL:$1|tavu|tavua}}',
+'nmembers' => '$1 {{PLURAL:$1|jäsen|jäsentä}}',
+'prefixindex' => 'Kaikki sivut prefiksilä',
+'usercreated' => 'Luottu $1 $2',
+'newpages' => 'Uuet sivut',
+'move' => 'Siirä',
+'pager-newer-n' => '← {{PLURAL:$1|1 uuempi|$1 uuempaa}}',
+'pager-older-n' => '{{PLURAL:$1|1 vanheempi|$1 vanheempaa}} →',
+
+# Book sources
+'booksources' => 'Kirjalähteet',
+'booksources-search-legend' => 'Hae kirjalähtheitä',
+'booksources-go' => 'Mene',
+
+# Special:Log
+'log' => 'Lokit',
+
+# Special:AllPages
+'allpages' => 'Kaikki sivut',
+'alphaindexline' => '$1…$2',
+'allarticles' => 'Kaikki sivut',
+'allpagessubmit' => 'Mene',
+
+# Special:Categories
+'categories' => 'Katekuurit',
+
+# Special:LinkSearch
+'linksearch-line' => '$1 on linkattu sivulta $2',
+
+# Special:Log/newusers
+'newuserlogpage' => 'Uuitten käyttäjitten loki',
+
+# Special:ListGroupRights
+'listgrouprights-members' => '(jäsenlista)',
+
+# E-mail user
+'emailuser' => 'Lähätä e-posti tälle käyttäjälle',
+
+# Watchlist
+'watchlist' => 'Valvontalista',
+'mywatchlist' => 'Minun valvontasivu',
+'watchlistfor2' => 'Käyttäjälle $1 $2',
+'watch' => 'Valvo',
+'unwatch' => 'Lopeta valvonta',
+'watchlist-details' => 'Valvontalistala on {{PLURAL:$1|$1 sivu|$1 sivua}} (keskustelusivuja mukhaan laskematta)',
+'wlshowlast' => 'Näytä viimiset $1 tiimat eli $2 päivät$3',
+'watchlist-options' => 'Valvontalistan altternatiivit',
+
+# Delete
+'actioncomplete' => 'Tehty',
+'actionfailed' => 'Tehty epäonnistui',
+'dellogpage' => 'Poistoloki',
+
+# Rollback
+'rollbacklink' => 'rullaa takashiin',
+
+# Protect
+'protectlogpage' => 'Suojausloki',
+'protectedarticle' => 'suojasi sivun [[$1]]',
+
+# Undelete
+'undeletelink' => 'näytä/ota takashiin',
+'undeleteviewlink' => 'näytä',
+
+# Namespace form on various pages
+'namespace' => 'Nimityhjyys:',
+'invert' => 'Jätä pois valinta',
+'blanknamespace' => '(Päätyhjyys)',
+
+# Contributions
+'contributions' => 'Omat mookkaukset',
+'contributions-title' => 'Käyttäjän $1 mookkaukset',
+'mycontris' => 'Omat mookkaukset',
+'contribsub2' => 'Käyttäjän $1 ($2) mookkaukset',
+'uctop' => '(viiminen)',
+'month' => 'Kuukauesta (ja aiemin)',
+'year' => 'Vuoesta (ja aiemin)',
+
+'sp-contributions-newbies' => 'Näytä uusitten tulokhaitten muutokset',
+'sp-contributions-blocklog' => 'blokeerinkiloki',
+'sp-contributions-uploads' => 'Ylöslattauksia',
+'sp-contributions-logs' => 'lokit',
+'sp-contributions-talk' => 'keskustelu',
+'sp-contributions-search' => 'Hae käyttäjitten bitraakia',
+'sp-contributions-username' => 'IP-atressi eli käyttäjänimi',
+'sp-contributions-toponly' => 'Näytä vain mookkaukset, jokka on vasta tehtyjä versuunia',
+'sp-contributions-submit' => 'Hae',
+
+# What links here
+'whatlinkshere' => 'Mitä linkkaa tänne',
+'whatlinkshere-title' => 'Sivut jokka länkathaan "$1"',
+'whatlinkshere-page' => 'Sivu',
+'linkshere' => 'Seuraavila sivuila on linkki sivule <strong>[[:$1]]</strong>:',
+'nolinkshere' => "Sivule \"'[[:\$1]]''' ei ole linkkiä.",
+'isredirect' => 'ohjaussivu',
+'istemplate' => 'sisäletty mallina',
+'isimage' => 'linkki fiilhiin',
+'whatlinkshere-prev' => '← {{PLURAL:$1|eelinen sivu|$1 eelistä sivua}}',
+'whatlinkshere-next' => '{{PLURAL:$1|seuraava sivu|$1 seuraava sivu}} →',
+'whatlinkshere-links' => 'linkit',
+'whatlinkshere-hideredirs' => '$1 ohjaukset',
+'whatlinkshere-hidetrans' => '$1 mallin inklyteerinkiä',
+'whatlinkshere-hidelinks' => '$1 linkit',
+'whatlinkshere-hideimages' => '$1 fiililinkit',
+'whatlinkshere-filters' => 'Filtterit',
+
+# Block/unblock
+'ipboptions' => '2 tiimaa:2 hours,1 päivä:1 day,3 päivää:3 days,1 viikko:1 week,2 viikkoa:2 weeks,1 kuukausi:1 month,3 kuukautta:3 months,6 kuukautta:6 months,1 vuosi:1 year,ikunen:infinite',
+'ipblocklist' => 'Plokeeratut käyttäjät',
+'blocklink' => 'blokeeraa',
+'unblocklink' => 'ota poies blokeerinki',
+'change-blocklink' => 'muuta blokeerinki',
+'contribslink' => 'mookkaukset',
+'blocklogpage' => 'Blokeerinki lokkaus',
+'blocklogentry' => 'blokeerattu [[$1]] blokeerausaika $2 $3',
+'block-log-flags-nocreate' => 'toppaa kontturejistreerinkiä',
+
+# Move page
+'movelogpage' => 'Siirtoloki',
+'revertmove' => 'siirä takashiin',
+
+# Export
+'export' => 'Eksporteeraa sivuja',
+
+# Namespace 8 related
+'allmessagesname' => 'Nimi',
+'allmessagesdefault' => 'Stantartiteksti',
+
+# Thumbnails
+'thumbnail-more' => 'Isona',
+'thumbnail_error' => 'Pienoiskuvan luominen epäonnistui: $1',
+
+# Tooltip help for the actions
+'tooltip-pt-userpage' => 'Oma käyttäjäsivu',
+'tooltip-pt-mytalk' => 'Oma keskustelusivu',
+'tooltip-pt-preferences' => 'Omat inställninkit',
+'tooltip-pt-watchlist' => 'Lista sivuista, joitten mookkauksia valvot',
+'tooltip-pt-mycontris' => 'Lista omista mookkauksista',
+'tooltip-pt-login' => 'Lokkaa mielelhään sisäle, mutta ei ole pakko',
+'tooltip-pt-logout' => 'Lokkaa ulos',
+'tooltip-ca-talk' => 'Keskustelu sisälöstä',
+'tooltip-ca-edit' => 'Voit mookata tätä sivua, mutta käytä esitarkastusknappia ennen kun säästät',
+'tooltip-ca-addsection' => 'Alota keskustelu uuesta asiasta',
+'tooltip-ca-viewsource' => 'Tämä sivu on suojattu. Saatat nähhä lähekootin',
+'tooltip-ca-history' => 'Sivun aiemat versuunit',
+'tooltip-ca-protect' => 'Suojaa tämä sivu',
+'tooltip-ca-delete' => 'Ota poies tämä sivu',
+'tooltip-ca-move' => 'Siirä tämä sivu',
+'tooltip-ca-watch' => 'Lissää tämä sivu sinun valvontalistale',
+'tooltip-ca-unwatch' => 'Ota poies tämä sivu sinun valvontalistasta',
+'tooltip-search' => 'Hae {{GRAMMAR:elative|{{SITENAME}}}}',
+'tooltip-search-go' => 'Siiry sivule joka on justhiins tällä nimelä',
+'tooltip-search-fulltext' => 'Hae sivuja tälle tekstile',
+'tooltip-p-logo' => 'Alkusivu',
+'tooltip-n-mainpage' => 'Mene alkusivule',
+'tooltip-n-mainpage-description' => 'Mene alkusivule',
+'tooltip-n-portal' => 'Keskustelua projektista',
+'tooltip-n-currentevents' => 'Löyä taustatietoja vereksistä tapahtumisista',
+'tooltip-n-recentchanges' => 'Lista vereksistä muutoksista',
+'tooltip-n-randompage' => 'Aukase satunhaisen sivun',
+'tooltip-n-help' => 'Apua ja informasuunia',
+'tooltip-t-whatlinkshere' => 'Lista wikisivuista jokka on länkattu tänne',
+'tooltip-t-recentchangeslinked' => 'Verekset mookkaukset sivuissa, jokka on länkattu tästä sivusta',
+'tooltip-feed-atom' => 'Atom-syöte tälle sivule',
+'tooltip-t-contributions' => 'Näytä lista tämän käyttäjän mookkauksista',
+'tooltip-t-emailuser' => 'Lähätä sähköposti tälle käyttäjälle',
+'tooltip-t-upload' => 'Lattaa ylös fiiliä',
+'tooltip-t-specialpages' => 'Lista kaikista spesiaalisivuista',
+'tooltip-t-print' => 'Printtausmaholinen versuuni',
+'tooltip-t-permalink' => 'Ikunen linkki tämän sivun  versuunhiin',
+'tooltip-ca-nstab-main' => 'Näytä sisältösivu',
+'tooltip-ca-nstab-user' => 'Näytä käyttäjäsivu',
+'tooltip-ca-nstab-special' => 'Tämä on spesiaalisivu; sie et saata mookata itteä sivua',
+'tooltip-ca-nstab-project' => 'Näytä prujektisivu',
+'tooltip-ca-nstab-image' => 'Näytä fiilisivu',
+'tooltip-ca-nstab-template' => 'Näytä mallia',
+'tooltip-ca-nstab-category' => 'Näytä katekuurisivu',
+'tooltip-minoredit' => 'Merkitte tämä pieneksi muutokseksi',
+'tooltip-save' => 'Säästä mookkaukset',
+'tooltip-preview' => 'Esikuvvaa sinun muutokset, käytä tätä ennen kun säästät',
+'tooltip-diff' => 'Näytä sinun muutokset tekstistä',
+'tooltip-compareselectedversions' => 'Vertaile valitut sivuversuunit',
+'tooltip-watch' => 'Lissää tämä sivu sinun valvontalistale',
+'tooltip-rollback' => '"Rullaa takashiin" kaataa yhelä klikilä viimisen mookkaajan muutokset',
+'tooltip-undo' => '"Kumota" palauttaa tämän muutoksen ja aukasee artikkelin mookkausruutun esitarkastuksen kansa. Antaa maholisuuen kirjottaa mutiveerinkin mookkaajan yhteenvethoon',
+'tooltip-summary' => 'Kirjota lyhy yhteenveto',
+
+# Browsing diffs
+'previousdiff' => 'Vanheempi muutos',
+'nextdiff' => 'Uuempi muutos',
+
+# Media information
+'file-info-size' => '$1 × $2 pikseliä, fiilin koko: $3, MIME-tyyppi: $4',
+'file-nohires' => 'Tarkempaa kuvvaa ei ole saatavissa.',
+'svg-long-desc' => 'SVG-fiili; peruskoko $1 × $2 pikseliä, fiilikoko: $3',
+'show-big-image' => 'Korkearesulusuuni versuuni',
+
+# Bad image list
+'bad_image_list' => 'Listan muoto on seuraava:
+
+Vain *-merkilä alkavat rivit otethaan huomihoon.
+Rivin ensimäinen linkki häätyy mennä kehnoon fiilhiin.
+Kaikki muut linkit samala rivilä.käsitelthään poikkeuksena, eli toisin sanoen sivuja missä fiilin saapi käyttää.',
+
+# Metadata
+'metadata' => 'Meettataatta',
+'metadata-help' => 'Tämä fiili sisältää lisätietoja esimerkiks kuvanlukijan, eli kuvakäsittelyprukrammin lisätietoja. Kaikki tiot ei en´nää välttämättä vastaa toelisuutheen, jos kuvvaa on mookattu sen alkuperäisen luomisen jälkhiin.',
+'metadata-fields' => 'Seuraavaa meettataatta kentät listattu tässä informasuunissa, sisälethään näkyvänä kuvasivussa, kun meettataatta taulukko kolapsaa. Muut piilotethaan stantartina.
+* make
+* model
+* datetimeoriginal
+* exposuretime
+* fnumber
+* isospeedratings
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
+
+# External editor support
+'edit-externally' => 'Mookkaa tätä fiiliä käyttämällä eksterniä aplikasuunia',
+'edit-externally-help' => '(Katto [//www.mediawiki.org/wiki/Manual:External_editors ohjeet], jos haluat lissää tietoja.)',
+
+# 'all' in various places, this might be different for inflected languages
+'watchlistall2' => 'kaikki',
+'namespacesall' => 'kaikki',
+'monthsall' => 'kaikki',
+
+# Watchlist editing tools
+'watchlisttools-view' => 'Näytä muutokset',
+'watchlisttools-edit' => 'Näytä ja mookkaa valvontalistaa',
+'watchlisttools-raw' => 'Mookkaa valvontalistaa raakamuoossa',
+
+# Core parser functions
+'duplicate-defaultsort' => 'Varotus: Stantartisortteerausavvain ”$2” korvaa aieman stantartisortteerausavvaimen”$1”.',
+
+# Special:SpecialPages
+'specialpages' => 'Spesiaali sivut',
+
+# External image whitelist
+'external_image_whitelist' => '#Älä muuta tätä riviä ollenkhaan.<pre>
+#Kirjota rekyljääri frakmentitten meininkit (vain osa, joka mennee //-merkkitten välhiin) tähhään alle
+#Niitä verrathaan ulkoisitten (suoralinkitetyitten) kuvitten URLhin
+#Net jokka sopivat, näytethään kuvina, muuten kuvhiin näytethään vain linkit
+#Rivit, jokka alkavat #-merkilä on komentaaria
+#Tämä on riippumaton puukstavitten kokosta',
+
+# Special:Tags
+'tag-filter' => '[[Special:Tags|Merkki]] filtteri:',
+
+);
index abaed26..394f985 100644 (file)
@@ -1247,7 +1247,7 @@ Tín t-post adressa verður ikki avdúkað, tá aðrir brúkarir seta seg í sam
 'nchanges' => '$1 {{PLURAL:$1|broyting|broytingar}}',
 'recentchanges' => 'Seinastu broytingar',
 'recentchanges-legend' => 'Nýligar broytingar møguleikar',
-'recentchangestext' => 'Á hesi síðu kanst tú fylgja teimum nýggjastu broytingunum á hesi wiki.',
+'recentchanges-summary' => 'Á hesi síðu kanst tú fylgja teimum nýggjastu broytingunum á hesi wiki.',
 'recentchanges-feed-description' => "Við hesum feed'inum kanst tú fylgja teimum seinastu broytingunum á hesi wiki'ini.",
 'recentchanges-label-newpage' => 'Henda rætting upprættaði eina nýggja síðu',
 'recentchanges-label-minor' => 'Hetta er ein lítil rætting',
index 01bd5f4..64e425b 100644 (file)
  * @author Tpt
  * @author Urhixidur
  * @author Verdy p
+ * @author WikiEoFrEn
  * @author Wyz
  * @author Yumeki
  * @author Zebulon84
  * @author Zetud
+ * @author Zolo
  * @author Горан Анђелковић
  * @author לערי ריינהארט
  */
@@ -263,6 +265,7 @@ $magicWords = array(
        'staticredirect'          => array( '1', '__REDIRECTIONSTATIQUE__', '__STATICREDIRECT__' ),
        'protectionlevel'         => array( '1', 'NIVEAUDEPROTECTION', 'PROTECTIONLEVEL' ),
        'url_path'                => array( '0', 'CHEMIN', 'PATH' ),
+       'url_query'               => array( '0', 'QUESTION', 'QUERY' ),
 );
 
 $specialPageAliases = array(
@@ -1304,9 +1307,9 @@ Assurez-vous que cette opération conservera la continuité de l’historique de
 'mergelogpagetext' => 'Voici la liste des fusions de l’historique d’une page dans celui d’une autre les plus récentes.',
 
 # Diffs
-'history-title' => 'Historique des versions de «&nbsp;$1&nbsp;»',
-'difference-title' => 'Différence entre des versions de « $1 »',
-'difference-title-multipage' => 'Différence entre les pages « $1 » et « $2 »',
+'history-title' => '$1 : Historique des versions',
+'difference-title' => '$1 : Différence entre versions',
+'difference-title-multipage' => 'Différences entre les pages « $1 » et « $2 »',
 'difference-multipage' => '(Différence entre les pages)',
 'lineno' => 'Ligne $1 :',
 'compareselectedversions' => 'Comparer les versions sélectionnées',
@@ -1402,6 +1405,7 @@ Essayez en utilisant le préfixe ''all:'' pour rechercher dans tout le contenu (
 'prefs-beta' => 'Fonctionnalités bêta',
 'prefs-datetime' => 'Date et heure',
 'prefs-labs' => 'Fonctionnalités « labs »',
+'prefs-user-pages' => 'Pages utilisateur',
 'prefs-personal' => 'Informations personnelles',
 'prefs-rc' => 'Modifications récentes',
 'prefs-watchlist' => 'Liste de suivi',
@@ -1520,7 +1524,7 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'userrights-groupsmember-auto' => 'Membre implicite de :',
 'userrights-groups-help' => 'Vous pouvez modifier les groupes auxquels appartient cet utilisateur:
 * Une case cochée signifie que l’utilisateur se trouve dans ce groupe.
-* Une case non cochée signifie qu’il ne s’y trouve pas.
+* Une case non cochée signifie qu’{{GENDER:$1|il|elle}} ne s’y trouve pas.
 * Un astérisque (*) indique que vous ne pouvez pas retirer ce groupe une fois que vous l’avez ajouté, ou vice-versa.',
 'userrights-reason' => 'Motif :',
 'userrights-no-interwiki' => 'Vous n’avez pas la permission de modifier des droits d’utilisateurs sur d’autres wikis.',
@@ -1663,7 +1667,7 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'nchanges' => '$1 modification{{PLURAL:$1||s}}',
 'recentchanges' => 'Modifications récentes',
 'recentchanges-legend' => 'Options des modifications récentes',
-'recentchangestext' => 'Piste les changements les plus récents du wiki sur cette page.',
+'recentchanges-summary' => 'Piste les changements les plus récents du wiki sur cette page.',
 'recentchanges-feed-description' => 'Suivre les dernières modifications de ce wiki dans un flux.',
 'recentchanges-label-newpage' => 'Cette modification a créé une nouvelle page',
 'recentchanges-label-minor' => 'Cette modification est mineure',
@@ -1870,14 +1874,15 @@ Si le problème persiste, contactez un [[Special:ListUsers/sysop|administrateur]
 'backend-fail-writetemp' => "Impossible d'écrire dans le fichier temporaire.",
 'backend-fail-closetemp' => 'Impossible de fermer le fichier temporaire.',
 'backend-fail-read' => 'Impossible de lire le fichier $1.',
-'backend-fail-create' => 'Impossible de créer le fichier $1.',
-'backend-fail-maxsize' => "Impossible de créer le fichier $1 parce qu'il est plus grand que  {{PLURAL:$2|$2 octet| $2 octets}}.",
+'backend-fail-create' => 'Impossible d’écrire le fichier $1.',
+'backend-fail-maxsize' => "Impossible d’écrire le fichier $1 parce qu'il est plus grand {{PLURAL:$2|qu'un octet|que $2 octets}}.",
 'backend-fail-readonly' => 'Le support de stockage "$1" est actuellement en lecture seule. La raison indiquée est: "$2"',
 'backend-fail-synced' => 'Le fichier "$1" est dans un état incohérent dans les supports de stockage internes',
 'backend-fail-connect' => 'Impossible de se connecter au support de stockage "$1".',
 'backend-fail-internal' => 'Une erreur inconnue s\'est produite dans le support de stockage "$1".',
 'backend-fail-contenttype' => 'Impossible de déterminer le type de contenu du fichier à stocker en "$1".',
 'backend-fail-batchsize' => 'Le support de stockage a fourni un lot de $1 {{PLURAL:$1|opération|opérations}} de fichier; la limite est $2 {{PLURAL:$2|opération|opérations}}.',
+'backend-fail-usable' => 'Impossible d’écrire le fichier $1 en raison de droits insuffisants ou répertoires/conteneurs manquants.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Impossible de se connecter à la base de données du journal pour le terminal de stockage "$1".',
@@ -1940,7 +1945,6 @@ Pour une sécurité optimale, img_auth.php est désactivé.',
 'http-curl-error' => 'Erreur lors de la récupération de l’URL : $1',
 'http-host-unreachable' => 'Impossible d’atteindre l’URL.',
 'http-bad-status' => 'Il y a eu un problème lors de la requête HTTP : $1 $2',
-'http-truncated-body' => 'Le corps de la requête n’a été reçu que partiellement.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'URL injoignable',
@@ -1949,7 +1953,7 @@ Pour une sécurité optimale, img_auth.php est désactivé.',
 'upload-curl-error28-text' => 'Le site a mis trop longtemps à répondre. Vérifiez que le site est en ligne, attendez un peu et réessayez. Vous pouvez aussi réessayer à une heure de moindre affluence.',
 
 'license' => 'Licence',
-'license-header' => 'Publié sous licence(s)',
+'license-header' => "Conditions d'utilisation",
 'nolicense' => 'Aucune licence sélectionnée',
 'license-nopreview' => '(Prévisualisation non disponible)',
 'upload_source_url' => ' (une URL valide et accessible publiquement)',
index b9c8ad2..0dd57ec 100644 (file)
@@ -26,8 +26,8 @@ $namespaceNames = array(
        NS_MEDIA            => 'Mèdia',
        NS_SPECIAL          => 'Spèciâl',
        NS_TALK             => 'Discussion',
-       NS_USER             => 'Usanciér',
-       NS_USER_TALK        => 'Discussion_usanciér',
+       NS_USER             => 'Utilisator',
+       NS_USER_TALK        => 'Discussion_utilisator',
        NS_PROJECT_TALK     => 'Discussion_$1',
        NS_FILE             => 'Fichiér',
        NS_FILE_TALK        => 'Discussion_fichiér',
@@ -43,8 +43,8 @@ $namespaceNames = array(
 
 $namespaceAliases = array(
        'Discutar'              => NS_TALK,
-       'Utilisator'            => NS_USER,
-       'Discussion_Utilisator' => NS_USER_TALK,
+       'Usanciér'              => NS_USER,
+       'Discussion_usanciér'   => NS_USER_TALK,
        'Émâge'                 => NS_FILE,
        'Discussion_Émâge'      => NS_FILE_TALK,
        'Discussion_Modèlo'     => NS_TEMPLATE_TALK,
@@ -1647,7 +1647,7 @@ Ceta enformacion serat publica.',
 'nchanges' => '$1 changement{{PLURAL:$1||s}}',
 'recentchanges' => 'Dèrriérs changements',
 'recentchanges-legend' => 'Chouèx des dèrriérs changements',
-'recentchangestext' => 'Siude los dèrriérs changements du vouiqui sur ceta pâge.',
+'recentchanges-summary' => 'Siude los dèrriérs changements du vouiqui sur ceta pâge.',
 'recentchanges-feed-description' => 'Siude los dèrriérs changements du vouiqui dens ceti flux.',
 'recentchanges-label-newpage' => 'Ceti changement at fêt una pâge novèla.',
 'recentchanges-label-minor' => 'Ceti changement est petiôt.',
index 591ee40..fe94fa5 100644 (file)
@@ -281,6 +281,7 @@ Sii jü [[Special:Version|Färsjoonssid]]',
 'ok' => 'OK',
 'pagetitle' => '$1 – {{SITENAME}}',
 'pagetitle-view-mainpage' => '{{SITENAME}}',
+'backlinksubtitle' => '← $1',
 'retrievedfrom' => 'Foon „$1“',
 'youhavenewmessages' => 'Dü hääst $1 aw din diskusjoonssid ($2).',
 'newmessageslink' => 'naie tisinge',
@@ -394,9 +395,8 @@ Ouffrååch: $2',
 'viewsourcetext' => 'Dü koost jü kwäle foon jüdeer sid bekiike än kopiire.',
 'viewyourtext' => "Dü könst di code faan '''din feranerang''' faan detheer sidj uunluke an kopiare:",
 'protectedinterface' => 'Jüdeer sid önjthålt takst for ju brükerouerfläche foon e software än as späred, am masbrük tu ferhanern.',
-'editinginterface' => "'''Woorschauing:''' Jüdeer sid önjthålt foon jü MesiaWiki-software bënjüteden takst.
-Änringe wirke jam aw jü brükerouerfläche üt.
-For ouerseetinge tånk deeram, jü önj di  [//translatewiki.net/wiki/Main_Page?setlang=frr Translatewiki], dåt MediaWiki lokalisiiringsprojekt, döörtufäären.",
+'editinginterface' => "'''Paase üüb:''' Üüb detdiar sidj stäänt tekst, diar faan't MediaWiki software brükt woort. Wan dü diar wat feranerst, feranerst dü di skak faan't Nuurdfresk Wikipedia.
+Wan dü wat auersaat wel, maage det mä [//translatewiki.net/wiki/Main_Page?setlang=frr Translatewiki], det as det MediaWiki lokalisiarangsprojekt.",
 'sqlhidden' => 'SCL-ouffrååg ferstäägen',
 'cascadeprotected' => 'Jüdeer sid as for beårbing spärd. Jü as önj {{PLURAL:$1|e füliende sid|da füliende side}}
 önjbünen, {{PLURAL:$1|jü|da}} madels e kaskaadespäropsjoon önj febading hüüljen {{PLURAL:$1|as|san}}:
@@ -501,6 +501,7 @@ Besäkere, da iüheer IP-adräse brüke, koone tu jü tutids niinj benutserkonte
 'invalidemailaddress' => 'Jü E-mail adräs wörd ai aksäptiird, ouerdåt jü en üngülti formoot (ewentuäl üngültie tiikne) tu heewen scheent.
 Wees sü gödj än jeef en koräkt adräs önj unti mäág dåt fäalj lääsi.',
 'cannotchangeemail' => 'E-mail-adresen kön uun detheer wiki ei feranert wurd.',
+'emaildisabled' => 'Fann detdiar sidj kön nian E-Mails fersjüürd wurd',
 'accountcreated' => 'Benjüterkonto mååged',
 'accountcreatedtext' => 'Dåt benjüteraccount for $1 as mååged wörden.',
 'createaccount-title' => 'Måågen foon en benjüterkonto for {{SITENAME}}',
@@ -696,6 +697,7 @@ For informasjoon füliet di leeste üttooch üt dåt benjüterspär-logbök:',
 'note' => "'''Påås aw:'''",
 'previewnote' => "'''Heer könst dü sä, hü det sidj wurd skal.'''
 Det sidj as oober noch ei seekert!",
+'continue-editing' => 'Widjer bewerke',
 'previewconflict' => 'Dideer forbekiik jeeft di inhålt foon dåt boowerst takstfälj wider. Sü wårt jü sid ütsiinj, wan dü nü spiikerst.',
 'session_fail_preview' => "'''Din werk küd ei ufseekert wurd, diar as wat skiaf gingen.'''
 Fersjük det man noch ans an trak do üüb ''Sid spiikre''.
@@ -712,6 +714,7 @@ Det komt flooksis föör, wan Dan anonym Proxy-siinst ei rocht werket.",
 'edit_form_incomplete' => "'''Enkelt dialen faan det formulaar san ei rocht uunkimen.'''
 Wees so gud an kontroliare ales noch ans.",
 'editing' => 'Beårbe foon $1',
+'creating' => 'Maage $1',
 'editingsection' => 'Beårben foon $1 (oufsnaas)',
 'editingcomment' => 'Beårben foon $1 (naien oufsnaas)',
 'editconflict' => 'Beårbingskonflikt: $1',
@@ -772,6 +775,7 @@ Jü wörd önjscheened sleeked.',
 'edit-no-change' => 'Din beårbing wörd ignoriird, deer niinj änring an e täkst fornümen wörd.',
 'edit-already-exists' => 'Köö niinj nai sid mååge.
 Dåt bestöö ål.',
+'defaultmessagetext' => 'Standard tekst',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Woorschauing: Jüdeer sid önjthålt tu fool apteele foon widluftie parserfunksjoone.
@@ -785,6 +789,8 @@ Deer {{PLURAL:$2|mötj ai mör ås 1 apteel|mönje ai mör ås $1 apteele}} wees
 'parser-template-loop-warning' => 'Forlåågesloif önjtdäkt: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Forloagerekursjoonsdiipgränse ouerschran ($1)',
 'language-converter-depth-warning' => 'Spräkekonwärsjoonsdiipdegränse ouerschren ($1)',
+'parser-unstrip-loop-warning' => 'Diar as en jinsidjag ferwisang',
+'parser-unstrip-recursion-limit' => 'Tuföl jinsidjag ferwisangen bi $1',
 
 # "Undo" feature
 'undo-success' => 'Detheer feranerang koon turag nimen wurd. 
@@ -960,7 +966,9 @@ A nawigatsjuun links saat ales weder turag üüb di ual stant.',
 'mergelogpagetext' => 'Dåtheer as dåt logbök foon da feriinde färsjoonshistoorie.',
 
 # Diffs
-'history-title' => 'Färsjoonshistoori foon "$1"',
+'history-title' => '$1: Ferluup faan a wersjuunen',
+'difference-title' => 'Ferskeel tesken a wersjuunen faan "$1"',
+'difference-title-multipage' => 'Ferskeel tesken a sidjen "$1" an "$2"',
 'difference-multipage' => '(Ferschääl twasche side)',
 'lineno' => 'Ra $1:',
 'compareselectedversions' => 'Wäälde färsjoone ferglike',
@@ -1034,23 +1042,66 @@ A nawigatsjuun links saat ales weder turag üüb di ual stant.',
 'searchdisabled' => 'Jü {{SITENAME}}-säkj as deaktiviird. Dü koost intwasche ma Google säke. Betånk, dåt di säkindäks for {{SITENAME}} ferüüljet weese koon.',
 
 # Quickbar
+'qbsettings' => 'Sidjenliist',
 'qbsettings-none' => 'Niinj',
+'qbsettings-fixedleft' => 'Lachts, fääst',
+'qbsettings-fixedright' => 'Rochts, fääst',
+'qbsettings-floatingleft' => 'Lachts, auergung',
+'qbsettings-floatingright' => 'Rochts, auergung',
+'qbsettings-directionality' => 'Fääst, hinget faan di skriiwwai faan det spriak uf',
 
 # Preferences page
 'preferences' => 'Önjstalinge',
 'mypreferences' => 'Önjstalinge',
+'prefs-edits' => 'Taal faan feranerangen:',
 'prefsnologin' => 'Ai önjmälded',
+'prefsnologintext' => 'Dü skel <span class="plainlinks">[{{fullurl:{{#special:UserLogin}}|returnto=$1}} uunmeldet]</span> wees, am din iinstelangen tu feranerin.',
 'changepassword' => 'Pååsuurd änre',
+'prefs-skin' => 'Skak',
 'skin-preview' => 'Forlök',
 'datedefault' => 'Foor-önjstaling',
+'prefs-beta' => 'Beta mögelkhaiden',
+'prefs-datetime' => 'Dai an klooktidj',
+'prefs-labs' => 'Alpha mögelkhaiden',
+'prefs-user-pages' => 'Brükersidjen',
 'prefs-personal' => 'Brüker dooten',
 'prefs-rc' => 'Leeste änringe',
+'prefs-watchlist' => "Uun't uug behual",
+'prefs-watchlist-days' => "So föl daar uun't uug behual:",
 'prefs-watchlist-days-max' => 'Ei muar üs {{PLURAL:$1|ään dai|$1 daar}}',
+'prefs-watchlist-edits' => 'Ei muar feranerangen üs:',
 'prefs-watchlist-edits-max' => 'Ai mör as 1000',
+'prefs-watchlist-token' => "Token för uun't uug behualen:",
 'prefs-misc' => 'Dit än dat',
 'prefs-resetpass' => 'Pååsuurd änre',
+'prefs-changeemail' => 'Feranere det E-Mail-adres',
+'prefs-setemail' => 'E-Mail-adres fäästlei:',
+'prefs-email' => 'E-Mail iinstelangen',
+'prefs-rendering' => 'Skak',
 'saveprefs' => 'Önjstalinge sääkere',
+'resetprefs' => 'Wech diarmä',
+'restoreprefs' => 'Normool iinstelangen weder haale',
+'prefs-editing' => 'Bewerke',
+'prefs-edit-boxsize' => "Grate faan't wönang tu't bewerkin:",
+'rows' => 'Räen:',
+'columns' => 'Spleder:',
+'searchresultshead' => 'Sjük',
+'resultsperpage' => 'So fölsis komt det föör per sidj:',
+'stub-threshold' => 'Formatiarang faan links <a href="#" class="stub">för letj sidjen</a> (uun Byte):',
+'stub-threshold-disabled' => 'Ufsteld',
+'recentchangesdays' => 'Soföl daar skel a „leetst feranerangen“ uunwise:',
+'recentchangesdays-max' => 'Ei muar üs {{PLURAL:$1|ään dai|$1 daar}}',
+'recentchangescount' => 'Soföl feranerangen skel uunwiset wurd:',
+'prefs-help-recentchangescount' => 'Det san a leetst feranerangen, wersjuunen an logbuken.',
+'prefs-help-watchlist-token' => "Wan dü detdiar fial mä en hiamelken code ütjfalst, woort en RSS-feed iinracht. Arken mä didiar code koon do sä, wat dü uun't uug behual wel. Diaram skul hi ei so ianfach wees, nem dach didiar: $1",
+'savedprefs' => 'Di iinstelangen san seekerd wurden.',
+'timezonelegend' => 'Tidjsoon:',
 'localtime' => 'lokaal tid',
+'timezoneuseserverdefault' => 'Wiki standard tidj brük ($1)',
+'timezoneuseoffset' => 'Öödern (ferskeel uundu)',
+'timezoneoffset' => 'Ferskeel¹:',
+'servertime' => 'Server klooktidj:',
+'guesstimezone' => 'Faan a browser auernem',
 'timezoneregion-africa' => 'Afrikaa',
 'timezoneregion-america' => 'Ameerikaa',
 'timezoneregion-antarctica' => 'Antarktikaa',
@@ -1067,32 +1118,86 @@ A nawigatsjuun links saat ales weder turag üüb di ual stant.',
 'defaultns' => 'Ouers säk önj jüheer noomerüme:',
 'default' => 'Forinstaling',
 'prefs-files' => 'Dååtäie',
+'prefs-custom-css' => 'Salew maaget CSS',
+'prefs-custom-js' => 'Salew maaget JavaScript',
+'prefs-common-css-js' => 'CSS / JavaScript för arke skak:',
+'prefs-reset-intro' => 'Üüb detdiar sidj könst dü weder a normool iinstelangen iinracht.
+Do san jo ual iinstelangen wech.',
+'prefs-emailconfirm-label' => 'E-Mail gudkäänd:',
+'prefs-textboxsize' => "Grate faan't wönang tu bewerkin",
 'youremail' => 'E-mail:',
 'username' => 'Brükernoome:',
+'uid' => 'Brüker ID:',
+'prefs-memberingroups' => 'Lasmoot faan {{PLURAL:$1|brükerskööl|brükersköölen}}:',
+'prefs-registration' => 'Uunmeldetidj',
 'yourrealname' => 'Rocht nööm:',
 'yourlanguage' => 'Spräke:',
+'yourvariant' => 'Spriak:',
+'prefs-help-variant' => 'Uun hün skriiwwiis skel a sidjen uunwiset wurd:',
 'yournick' => 'Nai signatuur:',
+'prefs-help-signature' => 'Wees so gud an onerskriiw üüb diskusjuunssidjen mä „<nowiki>~~~~</nowiki>“. Diar komt do dan brükernööm an det klooktidj bi ütj.',
+'badsig' => "Diar stemet wat ei mä't signatuur. Preewe at HTML.",
+'badsiglength' => 'Din signatuur mut ei muar üs $1 {{PLURAL:$1|tiaken|tiakens}} haa.',
+'yourgender' => 'Slach:',
+'gender-unknown' => 'Ei bekäänd',
+'gender-male' => 'Maan',
+'gender-female' => 'Wüf',
+'prefs-help-gender' => "Stäänt tu wool: Det woort brükt för't paasin uunspreegen faan maaner an wüfen. Arken koon det lees.",
 'email' => 'E-mail',
+'prefs-help-realname' => 'Stäänt tu wool. Wan dü dan rochten nööm uundääst, koon hi mä din bewerkangen ferbünjen wurd.',
 'prefs-help-email' => 'Dü säärst din e-mail-adres ei uundu, oober do könst dü uk nian mädialangen fu, wan dü ans din paaswurd ferjiden heest.',
 'prefs-help-email-others' => 'Mä ööder brükern könst dü uk auer hör an din brükersidj kontakt apnem. Diarför woort din e-mail-adres ei brükt.',
+'prefs-help-email-required' => 'Du en rocht E-Mail-adres uun.',
+'prefs-info' => 'Baasisdooten',
 'prefs-i18n' => 'Spriak',
 'prefs-signature' => 'Signatuur',
+'prefs-dateformat' => "Formaat faan't dootem",
+'prefs-timeoffset' => 'Ferskeel faan a klooktidj',
 'prefs-advancedediting' => 'Ütwided möölikhäide',
 'prefs-advancedrc' => 'Ütwided möölikhäide',
 'prefs-advancedrendering' => 'Ütwided möölikhäide',
 'prefs-advancedsearchoptions' => 'Ütwided möölikhäide',
 'prefs-advancedwatchlist' => 'Ütwided möölikhäide',
+'prefs-displayrc' => "Mögelkhaiden för't uunwisen",
+'prefs-displaysearchoptions' => "Mögelkhaiden för't uunwisen",
+'prefs-displaywatchlist' => "Mögelkhaiden för't uunwisen",
+'prefs-diffs' => 'Ferskeel',
+
+# User preference: e-mail validation using jQuery
+'email-address-validity-valid' => 'Detdiar E-Mail-adres schocht gud ütj.',
+'email-address-validity-invalid' => 'Du en echt E-Mail-adres uun.',
 
 # User rights
+'userrights' => 'Brükerrochten bewerke',
+'userrights-lookup-user' => 'Brükersköölen bewerke',
 'userrights-user-editname' => 'Brükernoome:',
+'editusergroup' => 'Brükersköölen bewerke',
+'editinguser' => "Brükerrochten faan '''[[User:$1|$1]]''' $2 feranere",
+'userrights-editusergroup' => 'Lasmootskap tu brükersköölen bewerke',
+'saveusergroups' => 'Brükersköölen seekre',
+'userrights-groupsmember' => 'Lasmoot faan:',
+'userrights-groupsmember-auto' => 'Faan salew lasmoot faan:',
+'userrights-groups-help' => 'Dü könst feranere, tu hün brükerskööl di brüker hiirt:
+* En uunkrüsagt kasche ment, di brüker hiirt diartu.
+* En ei uunkrüsagt kasche ment, di brüker hiart ei diartu.
+* En * ment, dat dü det brükerrocht ei weder wechnem könst (of amkiard).',
+'userrights-reason' => 'Grünj:',
+'userrights-no-interwiki' => 'Dü heest ei det rocht, am brükerrochten uun ööder wikis tu feranerin.',
+'userrights-nodatabase' => 'Det dootenbeenk $1 jaft at ei, tumanst ei lokaal.',
+'userrights-nologin' => 'Dü mutst di mä en administraator-brükerkonto [[Special:UserLogin|uunmelde]], wan dü brükerrochten feranere wel.',
+'userrights-notallowed' => 'Dü heest ei det rocht, am brükerrochten tu feranerin.',
+'userrights-changeable-col' => 'Lasmootskapen, diar dü feranere könst',
+'userrights-unchangeable-col' => 'Lasmootskapen, diar dü ei feranere könst',
 
 # Groups
+'group' => 'Skööl:',
 'group-user' => 'Brükere',
 'group-autoconfirmed' => 'Registriirde brükere',
 'group-bot' => 'Bots',
 'group-sysop' => 'Administratoore',
 'group-bureaucrat' => 'Bürokraate',
 'group-suppress' => 'Oversighter',
+'group-all' => '(aaltumaal)',
 
 'group-user-member' => '{{GENDER:$1|brüker}}',
 'group-autoconfirmed-member' => '{{GENDER:$1|gudkäänd brüker}}',
@@ -1128,7 +1233,7 @@ A nawigatsjuun links saat ales weder turag üüb di ual stant.',
 'nchanges' => '$1 {{PLURAL:$1|änring|änringe}}',
 'recentchanges' => 'Leeste änringe',
 'recentchanges-legend' => 'Wis-opsjoone',
-'recentchangestext' => "Üüb detheer sidj könst dü a leetst feranerangen faan '''{{SITENAME}}''' ferfulge.",
+'recentchanges-summary' => "Üüb detheer sidj könst dü a leetst feranerangen faan '''{{SITENAME}}''' ferfulge.",
 'recentchanges-feed-description' => 'Ferfülie ma dåtheer feed da leeste änringe önj {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Nei sidj uunlaanj',
 'recentchanges-label-minor' => 'Letj feranerang',
@@ -1287,15 +1392,28 @@ Wan dü jü sid wider foon din eefterkiikliste wächhååle mååst, klik aw jü
 
 # Delete
 'deletepage' => 'Sid tunintemååge',
+'exblank' => 'sidj wiar leesag',
+'delete-confirm' => 'Strik "$1"',
 'delete-legend' => 'Strike',
+'historywarning' => "'''Paase üüb:''' Det sidj, wat dü strik wel, hää amanbi $1 {{PLURAL:$1|wersjuun|wersjuunen}}:",
 'confirmdeletetext' => 'Dü bast deerbai, en sid ma åle tuhiirende ålere färsjoone tuninte tu måågen. Bestääsie hål deertu, dåt dü de foon da konsekwänse bewust bast, än dåt dü önj oueriinjstiming ma da [[{{MediaWiki:Policy-url}}|ruchtliinjen]] hoonelst.',
 'actioncomplete' => 'Aksjoon beånd',
 'actionfailed' => 'Diar ging wat skiaf',
 'deletedtext' => '„$1“ wörd tunintemååged. In e $2 fanst dü en list foon da tuleest tunintemåågede side.',
 'dellogpage' => 'Tunintemååg-Logbök',
+'dellogpagetext' => 'Diar stun a leetst stregen sidjen an datein.',
+'deletionlog' => "logbuk faan't striken",
+'reverted' => 'Tu en ual wersjuun turagsaat',
 'deletecomment' => 'Grün:',
 'deleteotherreason' => 'Ouderen/tubaikaamenden grün:',
 'deletereasonotherlist' => 'Ouderen grün',
+'deletereason-dropdown' => "*Algemian grünjer för't striken
+** Di skriiwer wul det so
+** Copyright as ei beaachtet
+** Wandaalen onerwais",
+'delete-edit-reasonlist' => "Grünjer för't striken bewerke",
+'delete-toobig' => 'Detdiar sidj hää muar üs $1 {{PLURAL:$1|wersjuun|wersjuunen}} . Sok sidjen kön ei so gau stregen wurd, ööders san a servers plaat.',
+'delete-warning-toobig' => "Detdiar sidj hää muar üs $1 {{PLURAL:$1|wersjuun|wersjuunen}} . Det striken koon komer maage bi't dootenbeenk.",
 
 # Rollback
 'rollbacklink' => 'tubäägseete',
@@ -1304,6 +1422,7 @@ Wan dü jü sid wider foon din eefterkiikliste wächhååle mååst, klik aw jü
 'protectlogpage' => 'Sideschütse-logbök',
 'protectedarticle' => 'schütsed „[[$1]]“',
 'modifiedarticleprotection' => 'änred e schüts for "[[$1]]"',
+'prot_1movedto2' => 'hää „[[$1]]“ efter „[[$2]]“ fersköwen',
 'protectcomment' => 'Grün:',
 'protectexpiry' => 'Spärduur:',
 'protect_expiry_invalid' => 'Jü önjjääwen duur as üngülti.',
@@ -1321,10 +1440,68 @@ Wan dü jü sid wider foon din eefterkiikliste wächhååle mååst, klik aw jü
 'protect-cantedit' => 'Dü koost jü späre foon jüheer sid ai änre, deer dü niinj beruchtiging tu beårben foon jü sid hääst.',
 'restriction-type' => 'Schütsstatus',
 'restriction-level' => 'Schütshöögde',
+'minimum-size' => 'Minimaal grate:',
+'maximum-size' => 'Maksimaal grate:',
+'pagesize' => '(bytes)',
+
+# Restrictions (nouns)
+'restriction-edit' => 'Bewerke',
+'restriction-move' => 'Fersküüw',
+'restriction-create' => 'Maage',
+'restriction-upload' => 'Huuchsjüür',
+
+# Restriction levels
+'restriction-level-sysop' => 'seekerd (bluas för administratooren)',
+'restriction-level-autoconfirmed' => 'hualew seekerd (bluas för gudkäänd brükern)',
+'restriction-level-all' => 'aaltumaal',
 
 # Undelete
+'undelete' => 'Stregen sidjen uunwise',
+'undeletepage' => 'Stregen sidjen uunwise an weder iinstel',
+'undeletepagetitle' => "'''Detdiar wiset a stregen wersjuunen faan [[:$1|$1]]'''.",
+'viewdeletedpage' => 'Stregen sidjen uunwise',
+'undeletepagetext' => "{{PLURAL:$1|Detdiar sidj as stregen wurden, oober koon|Jodiar $1 sidjen san stregen wurden, oober kön}} faan administratooren weder iinsteld wurd, wan jo noch uun't archiif san.",
+'undelete-fieldset-title' => 'Weder iinstel',
+'undeleteextrahelp' => '* Am det sidj mä aal jo wersjuunen weder iintustelen, sjük nian enkelt wersjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.*
+* Am en was wersjuun weder iintustelen, sjük det wersjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.',
+'undeleterevisions' => '{{PLURAL:$1|1 wersjuun|$1 wersjuunen}} archiwiaret',
+'undeletehistory' => 'Wan dü detdiar sidj weder iinstelst, wurd uk jo ual wersjuunen weder iinsteld. 
+Wan sant det striken en nei sidj mä di salew nööm iinsteld wurden as, wurd jo ual wersjuunen bi det nei sidj mä iinwerket.',
+'undeleterevdel' => 'Det weder iinstelen woort ei maaget, wan det leetst wersjuun ferstäächt as.
+Wan det so as, skal det leetst wersjuun iarst weder üüb normool steld wurd.',
+'undeletehistorynoadmin' => 'Detdiar sidj as stregen wurden.
+Oner könst dü sä, hoker det maaget hää an huaram.
+Di tekst faan det stregen sidj fu bluas administratooren uunwiset.',
+'undelete-revision' => 'Stregen wersjuun faan $1 (di $4 am a klook $5 ), $3:',
+'undeleterevision-missing' => 'Mä detdiar wersjuun stemet wat ei. Ferlicht as di link ferkiard of det wersjuun as ei muar diar.',
+'undelete-nodiff' => 'Nian föörgunger wersjuun diar.',
+'undeletebtn' => 'Weder iinstel',
 'undeletelink' => 'wise/widermååge',
 'undeleteviewlink' => 'Uunluke',
+'undeletereset' => 'Turag saat',
+'undeleteinvert' => 'Ütjwool amdrei',
+'undeletecomment' => 'Grünj:',
+'undeletedrevisions' => '{{PLURAL:$1|1 wersjuun|$1 wersjuunen}} weder iinsteld',
+'undeletedrevisions-files' => '{{PLURAL:$1|1 wersjuun|$1 wersjuunen}} an {{PLURAL:$2|1 datei|$2 datein}} weder iinsteld',
+'undeletedfiles' => '{{PLURAL:$1|1 datei|$1 datein }} weder iinsteld',
+'cannotundelete' => 'Weder iinstelen hää ei loket; ferlicht hää hoker ööders det al weder iinsteld.',
+'undeletedpage' => "'''„$1“''' as weder iinsteld wurden.
+Uun't [[Special:Log/delete|logbuk faan stregen sidjen]] stun a stregen an weder iinsteld sidjen.",
+'undelete-header' => "Luke uun't [[Special:Log/delete|logbuk för stregen sidjen]] efter stregen sidjen faan a leetst tidj.",
+'undelete-search-title' => 'Sjük stregen sidjen',
+'undelete-search-box' => 'Sjük stregen sidjen',
+'undelete-search-prefix' => 'Sjük sidjen, diar began mä:',
+'undelete-search-submit' => 'Sjük',
+'undelete-no-results' => "Uun't archiif wiar nian paasen sidjen.",
+'undelete-filename-mismatch' => 'Det wersjuun faan $1 koon ei weder iinsteld wurd. Di dateinööm paaset ei.',
+'undelete-bad-store-key' => "Det dateiwersjuun faan $1 koon ei weder iinsteld wurd. Det datei wiar al föör't striken ei muar diar.",
+'undelete-error' => "Bi't weder iinstelen faan det sidj as wat skiaf gingen.",
+'undelete-error-short' => "Bi't weder iinstelen faan det datei $1 as wat skiaf gingen.",
+'undelete-error-long' => "Bi't weder iinstelen faan en datei as wat skiaf gingen:
+
+$1",
+'undelete-show-file-confirm' => 'Wel dü würelk det stregen wersjuun faan det datei „<nowiki>$1</nowiki>“ faan di $2, am a klook $3 uunluke?',
+'undelete-show-file-submit' => 'Ja',
 
 # Namespace form on various pages
 'namespace' => 'Noomerüm:',
@@ -1371,6 +1548,7 @@ Wan dü jü sid wider foon din eefterkiikliste wächhååle mååst, klik aw jü
 # Block/unblock
 'blockip' => 'IP-adräs/brüker späre',
 'ipboptions' => '2 stüne:2 hours,1 däi:1 day,3 deege:3 days,1 wääg:1 week,2 wääge:2 weeks,1 moune:1 month,3 moune:3 months,6 moune:6 months,1 iir:1 year,suner iinje:infinite',
+'unblocked-id' => 'Sperang $1 as apheewen',
 'blocklist' => 'Spärd brükere',
 'ipblocklist' => 'Spärd brükere',
 'ipblocklist-legend' => 'Spärd brükere fine',
@@ -1384,9 +1562,9 @@ Wan dü jü sid wider foon din eefterkiikliste wächhååle mååst, klik aw jü
 'blocklogpage' => 'Brükerspär-logbök',
 'blocklogentry' => 'spärd „[[$1]]“ for di tidrüm: $2 $3',
 'reblock-logentry' => 'änerd jü spär for „[[$1]]“ for di tidrüm: $2 $3',
-'blocklogtext' => 'Dåtdeer as dåt logbök ouer späringe än önjtspäringe foon brükere än IP-adräse.
-Automatisch spärd IP-adräse wårde ai footed.
-Sii jü [[Special:BlockList|list foon da spärd IP-adräse än brükernoome]] for ål da aktive späre.',
+'blocklogtext' => "Detdiar as det logbuk auer sperangen an apheewen sperangen faan brükernöömer an IP-adresen.
+Automaatisk sperd IP-adresen wurd ei uunwiset.
+Luke bi't [[Special:BlockList|sperlist]] för aal jo aktuel speren.",
 'unblocklogentry' => 'heet jü späre foon „$1“ aphääwen',
 'block-log-flags-anononly' => 'bloot anonyme',
 'block-log-flags-nocreate' => 'Måågen foon brükerkonte spärd',
@@ -1434,6 +1612,9 @@ Hål di '''naie''' tiitel uner '''muul''' önjdreege, deeruner jü ambenååming
 'talkexists' => 'Jü sid seelew wörd erfolchrik ferschääwen, ouers jü deertu hiirende diskusjoonssid ai, deer ål iinj ma di nai tiitel bestoont. Glik hål da önjhålte foon hönj ouf.',
 'movedto' => 'ferschääwen eefter',
 'movetalk' => 'Jü diskusjoonssid maferschüwe, wan möölik',
+'movepage-page-moved' => 'Det sidj $1 as efter $2 fersköwen wurden.',
+'movepage-page-unmoved' => 'Det sidj $1 küd ei efter $2 fersköwen wurd.',
+'movepage-max-pages' => 'Diar kön ei muar üs {{PLURAL:$1|sidj|sidjen}} fersköwen wurd. Muar sidjen kön ei automaatisk fersköwen wurd.',
 'movelogpage' => 'Ferschüwingslogbök',
 'movereason' => 'Begrüning:',
 'revertmove' => 'tubääg ferschüwe',
@@ -1602,5 +1783,9 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'revdelete-uname-unhid' => 'brükernoome frijääwen',
 'revdelete-restricted' => 'gränse jüle uk for administratoore',
 'revdelete-unrestricted' => 'gränse for administratoore wächnümen',
+'logentry-move-move' => '$1 hää det sidj $3 efter $4 fersköwen.',
+'logentry-move-move-noredirect' => '$1 hää det sidj $3 efter $4 saner widjerfeerang fersköwen.',
+'logentry-move-move_redir' => '$1 hää det sidj $3 efter $4 fersköwen an diarbi en widjerfeerang auerskrewen.',
+'logentry-move-move_redir-noredirect' => '$1 hää det sidj $3 efter $4 fersköwen an diarbi en widjerfeerang auerskrewen saner salew en widjerfeerang uuntuleien.',
 
 );
index 2729d38..e4f32ab 100644 (file)
@@ -11,6 +11,7 @@
  * @author Kaganer
  * @author Klenje
  * @author MF-Warburg
+ * @author Reedy
  * @author Urhixidur
  * @author לערי ריינהארט
  */
@@ -830,7 +831,7 @@ La tô direzion di pueste no ven mostrade cuant che i utents ti contatin.',
 'nchanges' => '$1 {{PLURAL:$1|cambiament|cambiaments}}',
 'recentchanges' => 'Ultins cambiaments',
 'recentchanges-legend' => 'Opzions dai ultins cambiaments',
-'recentchangestext' => 'Cheste pagjine e mostre i plui recents cambiaments inte {{SITENAME}}.',
+'recentchanges-summary' => 'Cheste pagjine e mostre i plui recents cambiaments inte {{SITENAME}}.',
 'recentchanges-feed-description' => 'Chest canâl al ripuarte i cambiaments plui recents ai contignûts di cheste wiki.',
 'recentchanges-label-newpage' => 'Chest cambiament al à creât une gnove pagjine',
 'recentchanges-label-minor' => 'Chest al è un piçul cambiament',
@@ -1349,7 +1350,7 @@ tu âs di cognossi lis conseguencis prime di lâ indevant.",
 In chescj câs, tu varâs di movi o unî a man lis informazions contignudis te pagjine di discussion, se tu lu desideris.",
 'movearticle' => 'Môf la vôs',
 'movenologin' => 'No tu sês jentrât',
-'movenologintext' => 'Tu âs di jessi un utent regjistrât e <a href="{{localurl:Special:UserLogin}}">jentrât</a> par movi une pagjine.',
+'movenologintext' => 'Tu âs di jessi un utent regjistrât e [[Special:UserLogin|jentrât]] par movi une pagjine.',
 'movenotallowed' => 'No tu âs i permès che a coventin par movi lis pagjinis.',
 'newtitle' => 'Al gnûf titul',
 'move-watch' => 'Ten di voli cheste pagjine',
index c09e27e..8e3c271 100644 (file)
@@ -1206,7 +1206,7 @@ Jo kinne ek oaren de mûglikheid jaan kontakt mei jo op te nimmen troch in ferwi
 'nchanges' => '$1 {{PLURAL:$1|bewurking|bewurkings}}',
 'recentchanges' => 'Koartlyn feroare',
 'recentchanges-legend' => 'Opsjes foar resinte feroarings',
-'recentchangestext' => 'De lêste feroarings fan de {{SITENAME}}.',
+'recentchanges-summary' => 'De lêste feroarings fan de {{SITENAME}}.',
 'recentchanges-feed-description' => 'Mei dizze feed kinne jo de nijste feroarings yn dizze wiki besjen.',
 'recentchanges-label-newpage' => 'Mei dizze wiziging is in nije side makke',
 'recentchanges-label-minor' => 'Dit is in tekstwiziging',
index 539bdb0..3e333dc 100644 (file)
@@ -14,6 +14,7 @@
  * @author Kwekubo
  * @author Moilleadóir
  * @author Moydow
+ * @author Reedy
  * @author Spacebirdy
  * @author Stifle
  * @author Tameamseo
@@ -954,7 +955,7 @@ do chuid dreachtaí a chur i leith tusa.',
 'nchanges' => '{{PLURAL:$1|Athrú amháin|$1 athruithe}}',
 'recentchanges' => 'Athruithe is déanaí',
 'recentchanges-legend' => 'Roghanna do na hathruithe is déanaí',
-'recentchangestext' => 'Déan faire ar na hathruithe is déanaí sa vicí ar an leathanach seo.',
+'recentchanges-summary' => 'Déan faire ar na hathruithe is déanaí sa vicí ar an leathanach seo.',
 'recentchanges-feed-description' => 'Rianaigh na n-athruite vicí is déanaí sa fotha seo.',
 'recentchanges-label-bot' => 'Chomhlíon róbó an t-athrú seo',
 'rcnote' => "Is {{PLURAL:$1|é seo a leanas <strong>an t-athrú amháin</strong>|iad seo a leanas na <strong>$1</strong> athruithe is déanaí}} {{PLURAL:$2|ar feadh an lae dheireanaigh|ar feadh na '''$2''' lá deireanacha}}, as $5, $4.",
@@ -1589,7 +1590,7 @@ Tá dualgas ort bheith cinnte go rachaidh na naisc chuig an áit is ceart.
 Tabhair faoi deara '''nach''' n-athainmneofar an leathanach má tá leathanach ann cheana féin faoin teideal nua, ach amháin más folamh nó atreorú é nó mura bhfuil aon stair athraithe aige cheana.
 Mar sin, is féidir leathanach a athainmniú ar ais chuig an teideal a raibh air roimhe má tá botún déanta agat, agus ní féidir leathanach atá ann cheana a fhorscríobh.
 
-<font color=\"red\">'''Rabhadh!'''</font>
+'''Rabhadh!'''
 Is féidir gur dianbheart gan choinne é athrú a dhéanamh ar leathanach móréilimh;
 cinntigh go dtuigeann tú na hiarmhairtí go léir roimh dul ar aghaigh.",
 'movepagetalktext' => "Aistreofar an leathanach plé go huathoibríoch '''ach ní tharlófar sin''':
index f497826..14bcf51 100644 (file)
@@ -887,7 +887,7 @@ $2',
 'nchanges' => '$1道改动',
 'recentchanges' => '最晏𠮶改动',
 'recentchanges-legend' => '个朝子𠮶更改选项',
-'recentchangestext' => '跟到个只wiki上𠮶最新改动。',
+'recentchanges-summary' => '跟到个只wiki上𠮶最新改动。',
 'recentchanges-feed-description' => '跟到个只 wiki 上集合𠮶最后改动。',
 'recentchanges-label-newpage' => '个只编辑会建立只新页',
 'recentchanges-label-minor' => '个系只细修改',
index dbceb31..c113a5f 100644 (file)
@@ -910,7 +910,7 @@ $2',
 'nchanges' => '$1道改動',
 'recentchanges' => '最晏嗰改動',
 'recentchanges-legend' => '箇晝子嗰更改選項',
-'recentchangestext' => '跟到箇隻wiki上嗰最新改動。',
+'recentchanges-summary' => '跟到箇隻wiki上嗰最新改動。',
 'recentchanges-feed-description' => '跟到箇隻 wiki 上集合嗰最後改動。',
 'recentchanges-label-newpage' => '箇隻編輯會建立隻新頁',
 'recentchanges-label-minor' => '箇係隻細修改',
index c21e829..6f0ea56 100644 (file)
  * @author לערי ריינהארט
  */
 
+$namespaceNames = array(
+       NS_MEDIA            => 'Meadhan',
+       NS_SPECIAL          => 'Sònraichte',
+       NS_TALK             => 'Deasbaireachd',
+       NS_USER             => 'Cleachdaiche',
+       NS_USER_TALK        => 'Deasbaireachd_a\'_chleachdaiche',
+       NS_PROJECT_TALK     => 'An_deasbaireachd_aig_$1',
+       NS_FILE             => 'Faidhle',
+       NS_FILE_TALK        => 'Deasbaireachd_an_fhaidhle',
+       NS_MEDIAWIKI        => 'MediaWiki',
+       NS_MEDIAWIKI_TALK   => 'Deasbaireachd_MediaWiki',
+       NS_TEMPLATE         => 'Teamplaid',
+       NS_TEMPLATE_TALK    => 'Deasbaireachd_na_teamplaid',
+       NS_HELP             => 'Cobhair',
+       NS_HELP_TALK        => 'Deasbaireachd_na_cobharach',
+       NS_CATEGORY         => 'Roinn-seòrsa',
+       NS_CATEGORY_TALK    => 'Deasbaireachd_na_roinn-seòrsa',
+);
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Fo-loidhneadh nan ceanglaichean:',
@@ -777,7 +796,7 @@ Chan fhaicear an seòladh fhèin nuair a chuireas cuideigin post-dealain thugad.
 'nchanges' => '{{PLURAL:$1|mhùthadh|mhùthadh|mhùthadh|mhùthadh|mùthaidhean|mùthadh}}',
 'recentchanges' => 'Mùthaidhean ùra',
 'recentchanges-legend' => 'Roghainnean nam mùthaidhean ùra',
-'recentchangestext' => 'Cum sùil air na mùthaidhean as ùire a nithear air an uici air an duilleag seo.',
+'recentchanges-summary' => 'Cum sùil air na mùthaidhean as ùire a nithear air an uici air an duilleag seo.',
 'recentchanges-feed-description' => 'Cum sùil air na mùthaidhean as ùire a nithear air an uici seo san inbhir seo.',
 'recentchanges-label-newpage' => 'Chruthaich thu duilleag ùr leis a sin',
 'recentchanges-label-minor' => 'Seo mùthadh beag',
index c93ad92..9e0394e 100644 (file)
@@ -167,8 +167,8 @@ $magicWords = array(
        'notoc'                   => array( '0', '__SENÍNDICE__', '__SEMTDC__', '__SEMSUMÁRIO__', '__NOTOC__' ),
        'nogallery'               => array( '0', '__SENGALERÍA__', '__SEMGALERIA__', '__NOGALLERY__' ),
        'forcetoc'                => array( '0', '__FORZAROÍNDICE__', '__FORCARTDC__', '__FORCARSUMARIO__', '__FORÇARTDC__', '__FORÇARSUMÁRIO__', '__FORCETOC__' ),
-       'toc'                     => array( '0', '__ÍNDICE__', '__TDC__', '__SUMÁRIO__', '__TOC__' ),
-       'noeditsection'           => array( '0', '__SECCIÓNSNONEDITABLES__', '__NÃOEDITARSEÇÃO__', '__SEMEDITARSEÇÃO__', '__NOEDITSECTION__' ),
+       'toc'                     => array( '0', '__ÍNDICE__', '__TDC__', '__SUMÁRIO__', '__SUMARIO__', '__TOC__' ),
+       'noeditsection'           => array( '0', '__SECCIÓNSNONEDITABLES__', '__NÃOEDITARSEÇÃO__', '__SEMEDITARSEÇÃO__', '__NAOEDITARSECAO__', '__SEMEDITARSECAO__', '__NOEDITSECTION__' ),
        'noheader'                => array( '0', '___SENCABECEIRA__', '__SEMCABECALHO__', '__SEMCABEÇALHO__', '__SEMTITULO__', '__SEMTÍTULO__', '__NOHEADER__' ),
        'currentmonth'            => array( '1', 'MESACTUAL', 'MESATUAL', 'MESATUAL2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentmonth1'           => array( '1', 'MESACTUAL1', 'MESATUAL1', 'CURRENTMONTH1' ),
@@ -212,6 +212,7 @@ $magicWords = array(
        'language'                => array( '0', '#LINGUA:', '#IDIOMA:', '#LANGUAGE:' ),
        'numberofadmins'          => array( '1', 'NÚMERODEADMINISTRADORES', 'NUMERODEADMINISTRADORES', 'NUMBEROFADMINS' ),
        'special'                 => array( '0', 'especial', 'special' ),
+       'defaultsort'             => array( '1', 'ORDENAR:', 'ORDENACAOPADRAO', 'ORDENAÇÃOPADRÃO', 'ORDEMPADRAO', 'ORDEMPADRÃO', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'tag'                     => array( '0', 'etiqueta', 'tag' ),
        'hiddencat'               => array( '1', '__CATEGORÍAOCULTA__', '__CATEGORIAOCULTA__', '__CATOCULTA__', '__HIDDENCAT__' ),
        'pagesincategory'         => array( '1', 'PÁXINASNACATEGORÍA', 'PAGINASNACATEGORIA', 'PÁGINASNACATEGORIA', 'PAGINASNACAT', 'PÁGINASNACAT', 'PAGESINCATEGORY', 'PAGESINCAT' ),
@@ -1221,8 +1222,8 @@ Asegúrese de que esta modificación da páxina mantén a continuidade históric
 'notextmatches' => 'Non se atopou o texto en ningunha páxina',
 'prevn' => '{{PLURAL:$1|$1}} previas',
 'nextn' => '{{PLURAL:$1|$1}} seguintes',
-'prevn-title' => '$1 {{PLURAL:$1|resultado previo|resultados previos}}',
-'nextn-title' => '$1 {{PLURAL:$1|resultado seguinte|resultados seguintes}}',
+'prevn-title' => '{{PLURAL:$1|O resultado anterior|Os anteriores $1 resultados}}',
+'nextn-title' => '{{PLURAL:$1|O seguinte resultado|Os seguintes $1 resultados}}',
 'shown-title' => 'Mostrar $1 {{PLURAL:$1|resultado|resultados}} por páxina',
 'viewprevnext' => 'Ver as ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Opcións de busca',
@@ -1297,6 +1298,7 @@ Note que os seus índices do contido de {{SITENAME}} poden estar desactualizados
 'prefs-beta' => 'Características en probas',
 'prefs-datetime' => 'Data e hora',
 'prefs-labs' => 'Características experimentais',
+'prefs-user-pages' => 'Páxinas de usuario',
 'prefs-personal' => 'Información do usuario',
 'prefs-rc' => 'Cambios recentes',
 'prefs-watchlist' => 'Lista de vixilancia',
@@ -1558,8 +1560,8 @@ Ha de ter menos {{PLURAL:$1|dun carácter|de $1 caracteres}}.',
 'nchanges' => '$1 {{PLURAL:$1|cambio|cambios}}',
 'recentchanges' => 'Cambios recentes',
 'recentchanges-legend' => 'Opcións dos cambios',
-'recentchangestext' => 'Nesta páxina pode seguir os cambios máis recentes no wiki.',
-'recentchanges-feed-description' => 'Nesta fonte de novas pode seguir os cambios máis recentes no wiki.',
+'recentchanges-summary' => 'Nesta páxina pode seguir as modificacións máis recentes feitas no wiki.',
+'recentchanges-feed-description' => 'Nesta fonte de novas pode seguir as modificacións máis recentes feitas no wiki.',
 'recentchanges-label-newpage' => 'Esta edición creou unha nova páxina',
 'recentchanges-label-minor' => 'Esta é unha edición pequena',
 'recentchanges-label-bot' => 'Esta edición foi realizada por un bot',
@@ -1770,14 +1772,15 @@ Se o problema persiste, póñase en contacto cun [[Special:ListUsers/sysop|admin
 'backend-fail-writetemp' => 'Non se puido escribir no ficheiro temporal.',
 'backend-fail-closetemp' => 'Non se puido pechar o ficheiro temporal.',
 'backend-fail-read' => 'Non se puido ler o ficheiro "$1".',
-'backend-fail-create' => 'Non se puido crear o ficheiro "$1".',
-'backend-fail-maxsize' => 'Non se puido crear o ficheiro "$1" porque {{PLURAL:$2|é de máis de $2 byte|supera os $2 bytes}}.',
+'backend-fail-create' => 'Non se puido escribir o ficheiro "$1".',
+'backend-fail-maxsize' => 'Non se puido escribir o ficheiro "$1" porque {{PLURAL:$2|é de máis de $2 byte|supera os $2 bytes}}.',
 'backend-fail-readonly' => 'Nestes intres, o sistema de almacenamento "$1" está en modo de só lectura. A razón dada é: "$2"',
 'backend-fail-synced' => 'O ficheiro "$1" está nun estado inconsistente dentro do sistema de almacenamento interno',
 'backend-fail-connect' => 'Non se puido conectar co sistema de almacenamento "$1".',
 'backend-fail-internal' => 'Houbo un erro descoñecido no sistema de almacenamento "$1".',
 'backend-fail-contenttype' => 'Non se puido determinar o tipo de contido do ficheiro a almacenar en "$1".',
 'backend-fail-batchsize' => 'O sistema de almacenamento recibiu un feixe de $1 {{PLURAL:$1|operación|operacións}} de ficheiro; o límite está en $2 {{PLURAL:$2|operación|operacións}}.',
+'backend-fail-usable' => 'Non se puido escribir o ficheiro "$1" debido a que os permisos son insuficientes ou faltan os directorios/contenedores.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Non se pode conectar coa base de datos do rexistro do sistema de almacenamento "$1".',
@@ -1840,7 +1843,6 @@ Para unha seguridade óptima, img_auth.php está desactivado.',
 'http-curl-error' => 'Ocorreu un erro ao acceder ao URL: $1',
 'http-host-unreachable' => 'Non se puido acceder ao URL.',
 'http-bad-status' => 'Houbo un problema durante a solicitude HTTP: $1 $2',
-'http-truncated-body' => 'O corpo de solicitude recibiuse parcialmente.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Non se logrou acceder a ese URL',
@@ -3734,8 +3736,8 @@ Debería recibir [{{SERVER}}{{SCRIPTPATH}}/COPYING unha copia da licenza públic
 'version-entrypoints' => 'Enderezos URL de punto de entrada',
 'version-entrypoints-header-entrypoint' => 'Punto de entrada',
 'version-entrypoints-header-url' => 'URL',
-'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Ruta do artigo]',
-'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Ruta da escritura]',
+'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Ruta dos artigos]',
+'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Ruta das escrituras]',
 
 # Special:FilePath
 'filepath' => 'Ruta do ficheiro',
index f0467fc..8abcd89 100644 (file)
@@ -1097,7 +1097,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|μεταβολή|μεταβολαί}}',
 'recentchanges' => 'Αἱ νέαι μεταβολαί',
 'recentchanges-legend' => 'Ἐπιλογαὶ προσφάτων μεταβολῶν',
-'recentchangestext' => 'Ἀνιχνεύσειν τὰς πλείω πρόσφατους ἀλλαγὰς οῦ βίκι ἐν τῇδε τῇ δέλτῳ.',
+'recentchanges-summary' => 'Ἀνιχνεύσειν τὰς πλείω πρόσφατους ἀλλαγὰς οῦ βίκι ἐν τῇδε τῇ δέλτῳ.',
 'recentchanges-feed-description' => 'Παρακολουθεῖν τὰς πλείω προσφάτους ἀλλαγὰς τοῦ βίκι ἐν ταύτῃ περιλήψει.',
 'recentchanges-label-newpage' => 'Ἥδε ἡ μεταγραφὴ ἐποίησεν νέαν δέλτον τινά',
 'recentchanges-label-minor' => 'Ἥδε μικρὰ μεταγραφή ἐστιν',
index 557e56a..254869b 100644 (file)
 $fallback = 'de';
 
 $specialPageAliases = array(
-       'Allmessages'               => array( 'Alli Nochrichte' ),
-       'Allpages'                  => array( 'Alli Syte' ),
-       'Ancientpages'              => array( 'Veralteti Syte' ),
+       'Allmessages'               => array( 'Alli_Nochrichte' ),
+       'Allpages'                  => array( 'Alli_Syte' ),
+       'Ancientpages'              => array( 'Veralteti_Syte' ),
+       'Badtitle'                  => array( 'Nit-gültige_Sytename' ),
        'Blankpage'                 => array( 'Läärsyte' ),
        'Block'                     => array( 'Sperre' ),
        'Blockme'                   => array( 'Proxy-Sperre' ),
        'Booksources'               => array( 'ISBN-Suech' ),
-       'BrokenRedirects'           => array( 'Kaputti Wyterlaitige' ),
+       'BrokenRedirects'           => array( 'Kaputti_Wyterlaitige' ),
        'Categories'                => array( 'Kategorie' ),
-       'ChangePassword'            => array( 'Passwort ändre' ),
-       'Confirmemail'              => array( 'E-Mail bstetige' ),
+       'ChangeEmail'               => array( 'E-Mai-Adräss_ändere' ),
+       'ChangePassword'            => array( 'Passwort_ändre' ),
+       'ComparePages'              => array( 'Syte_verglyyche' ),
+       'Confirmemail'              => array( 'E-Mail_bstetige' ),
        'Contributions'             => array( 'Byytreeg' ),
-       'CreateAccount'             => array( 'Benutzerchonto aaleege' ),
+       'CreateAccount'             => array( 'Benutzerchonto_aaleege' ),
        'Deadendpages'              => array( 'Sackgassesyte' ),
-       'DeletedContributions'      => array( 'Gleschti Byytreeg' ),
+       'DeletedContributions'      => array( 'Gleschti_Byytreeg' ),
        'Disambiguations'           => array( 'Begriffschlärigsverwyys' ),
-       'DoubleRedirects'           => array( 'Doppleti Wyterlaitige' ),
+       'DoubleRedirects'           => array( 'Doppleti_Wyterlaitige' ),
+       'EditWatchlist'             => array( 'Bearbeitigslischt_bearbeite' ),
        'Emailuser'                 => array( 'E-Mail' ),
        'Export'                    => array( 'Exportiere' ),
-       'Fewestrevisions'           => array( 'Syte wo am wenigschte bearbeitet sin' ),
+       'Fewestrevisions'           => array( 'Syte_wo_am_wenigschte_bearbeitet_sin' ),
        'FileDuplicateSearch'       => array( 'Datei-Duplikat-Suech' ),
        'Filepath'                  => array( 'Dateipfad' ),
        'Import'                    => array( 'Importiere' ),
-       'Invalidateemail'           => array( 'E-Mail nit bstetige' ),
-       'BlockList'                 => array( 'Gsperrti IP' ),
-       'LinkSearch'                => array( 'Suech no Gleicher' ),
+       'Invalidateemail'           => array( 'E-Mail_nit_bstetige' ),
+       'BlockList'                 => array( 'Gsperrti_IP' ),
+       'LinkSearch'                => array( 'Suech_no_Links' ),
        'Listadmins'                => array( 'Ammanne' ),
        'Listbots'                  => array( 'Bötli' ),
        'Listfiles'                 => array( 'Dateie' ),
        'Listgrouprights'           => array( 'Grupperächt' ),
        'Listredirects'             => array( 'Wyterleitige' ),
        'Listusers'                 => array( 'Benutzerlischte' ),
-       'Lockdb'                    => array( 'Datebank sperre' ),
+       'Lockdb'                    => array( 'Datebank_sperre' ),
        'Log'                       => array( 'Logbuech' ),
-       'Lonelypages'               => array( 'Verwaisti Syte' ),
-       'Longpages'                 => array( 'Langi Syte' ),
-       'MergeHistory'              => array( 'Versionsgschichte zämefiere' ),
+       'Lonelypages'               => array( 'Verwaisti_Syte' ),
+       'Longpages'                 => array( 'Langi_Syte' ),
+       'MergeHistory'              => array( 'Versionsgschichte_zämefiere' ),
        'MIMEsearch'                => array( 'MIME-Suech' ),
-       'Mostcategories'            => array( 'Syte wo am meischte kategorisiert sin' ),
-       'Mostimages'                => array( 'Dateie wo am meischte brucht wäre' ),
-       'Mostlinked'                => array( 'Syte wo am meischte vergleicht sin' ),
-       'Mostlinkedcategories'      => array( 'Kategorie wo am meischte brucht wäre' ),
-       'Mostlinkedtemplates'       => array( 'Vorlage wo am meischte brucht wäre' ),
-       'Mostrevisions'             => array( 'Syte wo am meischte bearbeitet sin' ),
+       'Mostcategories'            => array( 'Syte_wo_am_meischte_kategorisiert_sin' ),
+       'Mostimages'                => array( 'Dateie_wo_am_meischte_brucht_wäre' ),
+       'Mostlinked'                => array( 'Syte_wo_am_meischte_druff_verlinkt_isch' ),
+       'Mostlinkedcategories'      => array( 'Kategorie_wo_am_meischte_brucht_wäre' ),
+       'Mostlinkedtemplates'       => array( 'Vorlage_wo_am_meischte_brucht_wäre' ),
+       'Mostrevisions'             => array( 'Syte_wo_am_meischte_bearbeitet_sin' ),
        'Movepage'                  => array( 'Verschiebe' ),
-       'Mycontributions'           => array( 'Myyni Byytreeg' ),
-       'Mypage'                    => array( 'Myyni Benutzersyte' ),
-       'Mytalk'                    => array( 'Myyni Diskussionssyte' ),
-       'Newimages'                 => array( 'Neji Dateie' ),
-       'Newpages'                  => array( 'Neji Syte' ),
-       'Popularpages'              => array( 'Beliebteschti Syte' ),
+       'Mycontributions'           => array( 'Myyni_Byytreeg' ),
+       'Mypage'                    => array( 'Myyni_Benutzersyte' ),
+       'Mytalk'                    => array( 'Myyni_Diskussionssyte' ),
+       'Myuploads'                 => array( 'Dateie_wonni_uffeglade_han' ),
+       'Newimages'                 => array( 'Neji_Dateie' ),
+       'Newpages'                  => array( 'Neji_Syte' ),
+       'PasswordReset'             => array( 'Passwort_zruggsetze' ),
+       'PermanentLink'             => array( 'Permalink' ),
+       'Popularpages'              => array( 'Beliebteschti_Syte' ),
        'Preferences'               => array( 'Ystellige' ),
        'Prefixindex'               => array( 'Vorsilbeverzeichnis' ),
-       'Protectedpages'            => array( 'Gschitzti Syte' ),
-       'Protectedtitles'           => array( 'Gsperrti Titel' ),
-       'Randompage'                => array( 'Zuefelligi Syte' ),
-       'Randomredirect'            => array( 'Zuefelligi Wyterleitig' ),
-       'Recentchanges'             => array( 'Letschti Änderige' ),
-       'Recentchangeslinked'       => array( 'Änderige an vergleichte Syte' ),
+       'Protectedpages'            => array( 'Gschitzti_Syte' ),
+       'Protectedtitles'           => array( 'Gsperrti_Titel' ),
+       'Randompage'                => array( 'Zuefelligi_Syte' ),
+       'Randomredirect'            => array( 'Zuefelligi_Wyterleitig' ),
+       'Recentchanges'             => array( 'Letschti_Änderige' ),
+       'Recentchangeslinked'       => array( 'Änderige_an_verlinkte_Syte' ),
        'Revisiondelete'            => array( 'Versionsleschig' ),
+       'RevisionMove'              => array( 'Version_verschiebe' ),
        'Search'                    => array( 'Suech' ),
-       'Shortpages'                => array( 'Churzi Syte' ),
+       'Shortpages'                => array( 'Churzi_Syte' ),
        'Specialpages'              => array( 'Spezialsyte' ),
        'Statistics'                => array( 'Statischtik' ),
-       'Uncategorizedcategories'   => array( 'Kategorie wo nit kategorisiert sin' ),
-       'Uncategorizedimages'       => array( 'Dateie wo nit kategorisiert sin' ),
-       'Uncategorizedpages'        => array( 'Syte wo nit kategorisiert sin' ),
-       'Uncategorizedtemplates'    => array( 'Vorlage wo nit kategorisiert sin' ),
+       'Tags'                      => array( 'Markierige' ),
+       'Unblock'                   => array( 'Freigee' ),
+       'Uncategorizedcategories'   => array( 'Kategorie_wo_nit_kategorisiert_sin' ),
+       'Uncategorizedimages'       => array( 'Dateie_wo_nit_kategorisiert_sin' ),
+       'Uncategorizedpages'        => array( 'Syte_wo_nit_kategorisiert_sin' ),
+       'Uncategorizedtemplates'    => array( 'Vorlage_wo_nit_kategorisiert_sin' ),
        'Undelete'                  => array( 'Widerhärstelle' ),
-       'Unlockdb'                  => array( 'Sperrig vu dr Datebank ufhebe' ),
-       'Unusedcategories'          => array( 'Kategorie wo nit brucht wäre' ),
-       'Unusedimages'              => array( 'Dateie wo nit brucht wäre' ),
-       'Unusedtemplates'           => array( 'Vorlage wo nit brucht wäre' ),
-       'Unwatchedpages'            => array( 'Syte wu nit beobachtet wäre' ),
+       'Unlockdb'                  => array( 'Sperrig_vu_dr_Datebank_ufhebe' ),
+       'Unusedcategories'          => array( 'Kategorie_wo_nit_brucht_wäre' ),
+       'Unusedimages'              => array( 'Dateie_wo_nit_brucht_wäre' ),
+       'Unusedtemplates'           => array( 'Vorlage_wo_nit_brucht_wäre' ),
+       'Unwatchedpages'            => array( 'Syte_wu_nit_beobachtet_wäre' ),
        'Upload'                    => array( 'Uffelade' ),
        'Userlogin'                 => array( 'Amälde' ),
        'Userlogout'                => array( 'Abmälde' ),
        'Userrights'                => array( 'Benutzerrächt' ),
-       'Wantedcategories'          => array( 'Kategorie wo gwinscht sin' ),
-       'Wantedfiles'               => array( 'Dateie wo fähle' ),
-       'Wantedpages'               => array( 'Syte wo gwinscht sin' ),
-       'Wantedtemplates'           => array( 'Vorlage wo fähle' ),
+       'Wantedcategories'          => array( 'Kategorie_wo_gwinscht_sin' ),
+       'Wantedfiles'               => array( 'Dateie_wo_fähle' ),
+       'Wantedpages'               => array( 'Syte_wo_gwinscht_sin' ),
+       'Wantedtemplates'           => array( 'Vorlage_wo_fähle' ),
        'Watchlist'                 => array( 'Beobachtigslischte' ),
-       'Whatlinkshere'             => array( 'Was gleicht do ane?' ),
-       'Withoutinterwiki'          => array( 'Ohni Interwiki' ),
+       'Whatlinkshere'             => array( 'Was_verwyyst_do_druff?' ),
+       'Withoutinterwiki'          => array( 'Ohni_Interwiki' ),
 );
 
 $magicWords = array(
@@ -1412,7 +1422,7 @@ Des cha nimmi ruckgängig gmacht wäre.',
 'nchanges' => '$1 {{PLURAL:$1|Änderig|Änderige}}',
 'recentchanges' => 'Letschti Änderige',
 'recentchanges-legend' => 'Optione vu dr Aazeig',
-'recentchangestext' => 'Uff däre Syte chönne Si die letschte Änderige in däm Wiki aaluege.',
+'recentchanges-summary' => 'Uff däre Syte chönne Si die letschte Änderige in däm Wiki aaluege.',
 'recentchanges-feed-description' => 'Di letschten Änderige vo {{SITENAME}} i däm Feed abonniere.',
 'recentchanges-label-newpage' => 'Die Bearbeitig het e neji Syte aagleit',
 'recentchanges-label-minor' => 'Des isch e chleini Änderig',
index 4f74012..f89ccfa 100644 (file)
@@ -350,7 +350,7 @@ $messages = array(
 'newpage' => 'નવું પાનું',
 'talkpage' => 'આ પાના વિષે ચર્ચા કરો',
 'talkpagelinktext' => 'ચર્ચા',
-'specialpage' => 'ખાસ પાનુ',
+'specialpage' => 'ખાસ પાનુ',
 'personaltools' => 'વ્યક્તિગત સાધનો',
 'postcomment' => 'નવો વિભાગ',
 'articlepage' => 'લેખનું પાનું જુઓ',
@@ -902,7 +902,7 @@ $2
 'nocreatetitle' => 'પાનું બનાવવૌં મર્યાદિત છે',
 'nocreatetext' => '{{SITENAME}}માં નવું પાનુ બનાવવા ઉપર નિયંત્રણ આવી ગયું છે.
 <br />આપ પાછા જઇને હયાત પાનામાં ફેરફાર કરી શકો છો, નહિતર [[Special:UserLogin|પ્રવેશ કરો કે નવું ખાતું ખોલો]].',
-'nocreate-loggedin' => 'તમને નવા પાના રચવાની પરવાનગી નથી.',
+'nocreate-loggedin' => 'તમને નવાં પાનાં બનાવવાની પરવાનગી નથી.',
 'sectioneditnotsupported-title' => 'ખંડીય સંપાદન શક્ય નથી',
 'sectioneditnotsupported-text' => 'આ પાના પર ખંડીય સંપાદન શક્ય નથી',
 'permissionserrors' => 'પરવાનગીની ખામી',
@@ -1480,7 +1480,7 @@ HTML નાકું ચકાસો',
 'nchanges' => '$1 {{PLURAL:$1|ફેરફાર|ફેરફારો}}',
 'recentchanges' => 'તાજા ફેરફારો',
 'recentchanges-legend' => 'હાલમાં થયેલા ફેરફારોના વિકલ્પ',
-'recentchangestext' => 'આ પાના દ્વારા વિકિમાં થયેલા તાજા ફેરફારો પર ધ્યાન રાખો.',
+'recentchanges-summary' => 'વિકિમાં તાજેતરમાં થયેલા ફેરફારો પર અહિંથી નજર રાખો.',
 'recentchanges-feed-description' => 'આ ફીડ દ્વારા વિકિમાં થયેલા તાજા ફેરફારો પર ધ્યાન રાખો.',
 'recentchanges-label-newpage' => 'આ ફેરફાર દ્વારા નવું પાનું નિર્મિત થયું',
 'recentchanges-label-minor' => 'આ એક નાનો સુધારો છે.',
@@ -1968,9 +1968,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'listusers-creationsort' => 'તારીખ અનુસાર ગોઠવો',
 'usereditcount' => '$1 {{PLURAL:$1|ફેરફાર|ફેરફારો}}',
 'usercreated' => '$1 તારીખે $2 વાગ્યે {{GENDER:$3|બનાવ્યું}}',
-'newpages' => 'નવા પાના',
+'newpages' => 'નવાં પાનાં',
 'newpages-username' => 'સભ્ય નામ:',
-'ancientpages' => 'સૌથી જૂનાં પાના',
+'ancientpages' => 'સૌથી જૂનાં પાના',
 'move' => 'નામ બદલો',
 'movethispage' => 'આ પાનું ખસેડો',
 'unusedimagestext' => 'નીચેની ફાઇલો અસ્તિત્વમાં તો છે પણ કોઇ પાના પર તેનો ઉપયોગ થયેલ નથી.
@@ -2016,7 +2016,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'allpagesprev' => 'પહેલાનું',
 'allpagesnext' => 'પછીનું',
 'allpagessubmit' => 'જાઓ',
-'allpagesprefix' => 'પà«\82રà«\8dવરà«\8dàª\97 àª§àª°àª¾àªµàª¤àª¾ àªªàª¾àª¨àª¾ શોધો',
+'allpagesprefix' => 'àª\89પસરà«\8dàª\97 àª§àª°àª¾àªµàª¤àª¾ àªªàª¾àª¨àª¾àª\82 શોધો',
 'allpagesbadtitle' => 'આપનું ઈચ્છિત શીર્ષક અમાન્ય છે, ખાલી છે, અથવાતો અયોગ્ય રીતે આંતર-ભાષિય કે આંતર-વિકિ સાથે જોડાયેલું શીર્ષક છે.
 શક્ય છે કે તેમાં એક કે વધુ એવા અક્ષર કે ચિહ્નો છે કે જે પાનાનાં શીર્ષક માટે અવૈધ છે.',
 'allpages-bad-ns' => '{{SITENAME}} ને નામસ્થળ  "$1" નથી.',
@@ -2132,7 +2132,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 ભવિષ્યમાં આ પાના અને તેનાં સંલગ્ન ચર્ચાનાં પાનામાં થનારા ફેરફારોની યાદી ત્યાં આપવામાં આવશે અને આ પાનું [[Special:RecentChanges|તાજેતરમાં થયેલા ફેરફારોની યાદી]]માં ઘાટા અક્ષરે જોવા મળશે, જેથી આપ સહેલાઇથી તેને અલગ તારવી શકો.',
 'removewatch' => 'ધ્યાનસૂચિમાંથી કાઢી નાખો',
 'removedwatchtext' => '"[[:$1]]" શીર્ષક હેઠળનું પાનું [[Special:Watchlist|તમારી ધ્યાનસૂચિમાંથી]] કાઢી નાંખવામાં આવ્યું છે.',
-'watch' => 'ધ્યાન માં રાખો',
+'watch' => 'ધ્યાનમાં રાખો',
 'watchthispage' => 'આ પાનું ધ્યાનમાં રાખો',
 'unwatch' => 'ધ્યાનસૂચિમાંથી હટાવો',
 'unwatchthispage' => 'નીરીક્ષણ બંધ કરો',
@@ -2208,7 +2208,7 @@ $UNWATCHURL
 'historywarning' => "'''ચેતવણી:''' જે પાનું તમે હટાવવા જઇ રહ્યાં છો તેને આશરે $1 {{PLURAL:$1|પુનરાવર્તન|પુનરાવર્તનો}}નો ઇતિહાસ છે:",
 'confirmdeletetext' => 'આપ આ પાનું તેના ઇતિહાસ (બધાજ પૂર્વ  ફેરફારો) સાથે હટાવી રહ્યાં છો.
 કૃપા કરી મંજૂરી આપો કે, આપ આમ કરવા ચાહો છો, આપ આના સરા-નરસા પરિણામોથી વાકેફ છો, અને આપ આ કૃત્ય [[{{MediaWiki:Policy-url}}|નીતિ]]ને અનુરૂપ જ કરી રહ્યાં છો.',
-'actioncomplete' => 'àª\95ામ àªªà«\82રà«\81àª\82 àª¥àª\88 àª\97યà«\81àª\82',
+'actioncomplete' => 'àª\95ામ àªªà«\82રà«\8dણ',
 'actionfailed' => 'કાર્ય અસફળ',
 'deletedtext' => '"$1" દૂર કરવામાં આવ્યું છે.
 તાજેતરમાં દૂર કરેલા લેખોની વિગત માટે $2 જુઓ.',
@@ -2414,7 +2414,7 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 'sp-contributions-submit' => 'શોધો',
 
 # What links here
-'whatlinkshere' => 'àª\85હિયાàª\82 àª¶à«\81àª\82 àª\9cà«\8bડાય àª\9bà«\87',
+'whatlinkshere' => 'અહિં શું જોડાય છે',
 'whatlinkshere-title' => '"$1" સાથે જોડાયેલાં પાનાં',
 'whatlinkshere-page' => 'પાનું:',
 'linkshere' => "નીચેના પાનાઓ '''[[:$1]]''' સાથે જોડાય છે:",
@@ -2623,7 +2623,7 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 'moveuserpage-warning' => "'''ચેતવણી :''' તમે સભ્યનું પાનું હટાવી રહ્યાં છો.  કૃપયા યાદરાખશો કે માત્ર પાનું જ હટાવીશકાશે અને સભ્ય્ને નૂતન નામ નહીં અપાય.",
 'movenologin' => 'પ્રવેશ કરેલ નથી',
 'movenologintext' => 'કોઇ પાનું હટાવવા માટે તેમે નોંધણી કૃત સભ્ય અને [[Special:UserLogin|logged in]]  હોવા જોઇએ',
-'movenotallowed' => 'તમનà«\87 àª¨àªµàª¾ àªªàª¾àª¨àª¾ ખસેડવાની પરવાનગી નથી.',
+'movenotallowed' => 'તમનà«\87 àªªàª¾àª¨àª¾àª\82 ખસેડવાની પરવાનગી નથી.',
 'movenotallowedfile' => 'તમને ફાઈલ ખસેડવાની પરવાનગી નથી.',
 'cant-move-user-page' => 'તમને સભ્ય પાના હટાવવાની પરવાનગી નથી (ઉપપાના સિવાય).',
 'cant-move-to-user-page' => 'તમને   કોઇ પાનાને સભ્ય પાનામાં ખસેડવાની પ્રવાનગી નથી (સિવાય કે સભ્ય ઉપપાના)',
@@ -2717,7 +2717,7 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 'allmessages-filter-unmodified' => 'અસંપાદિત',
 'allmessages-filter-all' => 'બધા',
 'allmessages-filter-modified' => 'સુધારીત',
-'allmessages-prefix' => 'પà«\82રà«\8dવરà«\8dàª\97 àª¦à«\8dવારા àª\9aાળો',
+'allmessages-prefix' => 'àª\89પસરà«\8dàª\97 àª¦à«\8dવારા àª\85લàª\97 àª¤àª¾àª°àªµો',
 'allmessages-language' => 'ભાષા:',
 'allmessages-filter-submit' => 'કરો',
 
@@ -3504,7 +3504,7 @@ $5
 'table_pager_next' => 'આગળનું પાનું',
 'table_pager_prev' => 'પાછળનું પાનું',
 'table_pager_first' => 'પહેલું પાનું',
-'table_pager_last' => 'àª\9bà«\87લà«\8dલà«\82ં પાનું',
+'table_pager_last' => 'àª\9bà«\87લà«\8dલà«\81ં પાનું',
 'table_pager_limit' => 'પ્રતિ પાને $1 વસ્તુ બતાવો',
 'table_pager_limit_label' => 'વસ્તિઓ પ્રતિ પાને',
 'table_pager_limit_submit' => 'જાઓ',
@@ -3749,7 +3749,7 @@ $5
 'api-error-duplicate-archive-popup-title' => 'ડ્યુપ્લીકેટ {{PLURAL:$1|ફાઈલ|ફાઈલો}} પહેલેથી મોજુદ છે.',
 'api-error-duplicate-popup-title' => 'આબેહુબ અન્ય {{PLURAL:$1|ફાઈલ|ફાઈલો}}.',
 'api-error-empty-file' => 'તમે ચડાવેલ ફાઈલ ખાલી છે',
-'api-error-emptypage' => 'નવા ખાલી પાના રચવાની અપ્રવાનગી નથી',
+'api-error-emptypage' => 'નવા ખાલી પાનાં બનાવવાની પરવાનગી નથી.',
 'api-error-fetchfileerror' => 'આંતરીક ત્રુટી: ફાઈલ લાવતી વખતે અમુક ગડબડ થઈ',
 'api-error-file-too-large' => 'તમે ચડાવેલી ફાઈલ ખૂબ મોટી છે',
 'api-error-filename-tooshort' => 'ફાઇલ નામ ખૂબ ટૂંકું છે',
index 1f8c61a..c7fbd44 100644 (file)
@@ -738,7 +738,7 @@ My bailliu eh y chiarail, bee eh ymmydit son cur gys lieh y chur dhyt er son yn
 'nchanges' => '$1 {{PLURAL:$1|caghlaa|chaghlaa|chaghlaa|caghlaaghyn}}',
 'recentchanges' => "Caghlaaghyn s'noa",
 'recentchanges-legend' => "Reihyssyn da ny caghlaaghyn s'noa",
-'recentchangestext' => "Shirr ny caghlaaghyn s'noa da'n wiki er y duillag shoh.",
+'recentchanges-summary' => "Shirrey ny caghlaaghyn s'noa da'n wiki er y duillag shoh.",
 'recentchanges-feed-description' => "Shirr ny caghlaaghyn jeianagh er y wiki 'sy scoltey shoh.",
 'recentchanges-label-newpage' => 'Ren y reaghey shoh croo duillag noa',
 'recentchanges-label-minor' => "She myn-arraghey t'ayn",
index 7e8a16a..a48bd4f 100644 (file)
@@ -734,7 +734,7 @@ Tshòng-tón pit-sî chhai $1-ke sṳ-ngièn yî-ha.',
 'nchanges' => '$1-chhṳ kiên-kói',
 'recentchanges' => 'Chui-khiûn ke kiên-kói',
 'recentchanges-legend' => 'Chui-khiun kiên-kói sién-chet',
-'recentchangestext' => 'Kiên-chiûng liá-ke wiki song ke chui-sîn kiên-kói.',
+'recentchanges-summary' => 'Kiên-chiûng liá-ke wiki song ke chui-sîn kiên-kói.',
 'recentchanges-feed-description' => 'Kiên-chiûng chhṳ-thin chhai wiki song chui-khiûn ke kiên-kói.',
 'rcnote' => "Yî-ha he chhai $3, chui-khiûn '''$2''' thiên-nui ke '''$1'''-chhṳ chui-khiûn ke kiên-kói ki-liu̍k:",
 'rcnotefrom' => "Ha-mien he chhṳ '''$2''' (Chui-tô hién-sṳ '''$1'''):",
index 9d0b04e..0d06303 100644 (file)
@@ -154,7 +154,6 @@ $magicWords = array(
        'localurl'                => array( '0', 'כתובת יחסית:', 'LOCALURL:' ),
        'localurle'               => array( '0', 'כתובת יחסית מקודד:', 'LOCALURLE:' ),
        'articlepath'             => array( '0', 'נתיב הדפים', 'ARTICLEPATH' ),
-       'pageid'                  => array( '0', 'מזהה הדף', 'PAGEID' ),
        'server'                  => array( '0', 'כתובת השרת', 'שרת', 'SERVER' ),
        'servername'              => array( '0', 'שם השרת', 'SERVERNAME' ),
        'scriptpath'              => array( '0', 'נתיב הקבצים', 'SCRIPTPATH' ),
@@ -235,7 +234,7 @@ $specialPageAliases = array(
        'BrokenRedirects'           => array( 'הפניות_לא_תקינות', 'הפניות_שבורות' ),
        'Categories'                => array( 'קטגוריות', 'רשימת_קטגוריות' ),
        'ChangeEmail'               => array( 'שינוי_דואר_אלקטרוני', 'שינוי_דואל' ),
-       'ChangePassword'            => array( 'שינוי_סיסמה' ),
+       'ChangePassword'            => array( 'שינוי_סיסמה', 'איפוס_סיסמה' ),
        'ComparePages'              => array( 'השוואת_דפים' ),
        'Confirmemail'              => array( 'אימות_כתובת_דואר' ),
        'Contributions'             => array( 'תרומות', 'תרומות_המשתמש' ),
@@ -1319,9 +1318,9 @@ $1",
 'mergelogpagetext' => 'זוהי רשימה של המיזוגים האחרונים של גרסאות מדף אחד לתוך דף שני.',
 
 # Diffs
-'history-title' => 'היסטוריית הגרסאות של $1',
-'difference-title' => 'הבדלים בין גרסאות של "$1"',
-'difference-title-multipage' => 'הבדלים בין הדפים $1 ו{{GRAMMAR:תחילית|$2}}',
+'history-title' => '$1: היסטוריית גרסאות',
+'difference-title' => '$1: הבדלים בין גרסאות',
+'difference-title-multipage' => '$1 ו{{GRAMMAR:תחילית|$2}}: הבדלים בין דפים',
 'difference-multipage' => '(הבדלים בין דפים)',
 'lineno' => 'שורה $1:',
 'compareselectedversions' => 'השוואת הגרסאות שנבחרו',
@@ -1418,6 +1417,7 @@ $1",
 'prefs-beta' => 'אפשרויות בטא',
 'prefs-datetime' => 'תאריך ושעה',
 'prefs-labs' => 'אפשרויות מעבדה',
+'prefs-user-pages' => 'דפי משתמש',
 'prefs-personal' => 'פרטי המשתמש',
 'prefs-rc' => 'שינויים אחרונים',
 'prefs-watchlist' => 'רשימת המעקב',
@@ -1682,7 +1682,7 @@ $1",
 'nchanges' => '{{PLURAL:$1|שינוי אחד|$1 שינויים}}',
 'recentchanges' => 'שינויים אחרונים',
 'recentchanges-legend' => 'אפשרויות בשינויים האחרונים',
-'recentchangestext' => 'ניתן לעקוב אחרי השינויים האחרונים באתר בדף זה.',
+'recentchanges-summary' => 'ניתן לעקוב אחרי השינויים האחרונים באתר בדף זה.',
 'recentchanges-feed-description' => 'ניתן לעקוב אחרי השינויים האחרונים באתר בדף זה.',
 'recentchanges-label-newpage' => 'בעריכה זו נוצר דף חדש',
 'recentchanges-label-minor' => 'זוהי עריכה משנית',
@@ -1891,14 +1891,15 @@ $1',
 'backend-fail-writetemp' => 'לא הייתה אפשרות לכתוב אל הקובץ הזמני.',
 'backend-fail-closetemp' => 'לא הייתה אפשרות לסגור את הקובץ הזמני.',
 'backend-fail-read' => 'קריאת הקובץ $1 לא הצליחה',
-'backend-fail-create' => '×\99צ×\99רת הקובץ $1 לא הצליחה',
-'backend-fail-maxsize' => '×\99צ×\99רת הקובץ $1 לא הצליחה כיוון שהוא גדול יותר {{PLURAL:$2|מבית אחד|מ־$2 בתים}}.',
+'backend-fail-create' => '×\9bת×\99×\91ת הקובץ $1 לא הצליחה',
+'backend-fail-maxsize' => '×\9bת×\99×\91ת הקובץ $1 לא הצליחה כיוון שהוא גדול יותר {{PLURAL:$2|מבית אחד|מ־$2 בתים}}.',
 'backend-fail-readonly' => 'מאגר האחסון לקבצים "$1" הוא כרגע במצב קריאה בלבד. הסיבה שניתנה לכך היא: "\'\'\'$2\'\'\'"',
 'backend-fail-synced' => 'הקובץ "$1" נמצא במצב לא עקבי בתוך מאגרי אחסון הקבצים הפנימיים',
 'backend-fail-connect' => 'לא ניתן היה להתחבר למאגר אחסון הקבצים הפנימי "$1".',
 'backend-fail-internal' => 'אירעה שגיאה בלתי־ידועה במאגר אחסון הקבצים הפנימי "$1".',
 'backend-fail-contenttype' => 'לא ניתן היה לקבוע את סוג התוכן של הקובץ לאחסון ב־"$1".',
 'backend-fail-batchsize' => 'למאגר אחסון הקבצים הפנימי הועבר אוסף של {{PLURAL:$1|פעולת קובץ אחת|$1 פעולות קובץ}}; המגבלה היא {{PLURAL:$2|פעולה אחת|$2 פעולות}}.',
+'backend-fail-usable' => 'כתיבת הקובץ $1 לא הצליחה כיוון שההרשאות אינן מספיקות או כיוון שהספריות/המכלים חסרים.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'לא ניתן היה להתחבר לבסיס הנתונים של היומן עבור מאגר אחסון הקבצים הפנימי "$1".',
@@ -1961,7 +1962,6 @@ $1',
 'http-curl-error' => 'שגיאה בקבלת כתובת ה־URL‏: $1',
 'http-host-unreachable' => 'לא ניתן להגיע לכתובת ה־URL.',
 'http-bad-status' => 'הייתה בעיה בשליחת בקשת ה־HTTP‏: $1 $2',
-'http-truncated-body' => 'גוף הבקשה התקבל רק באופן חלקי.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'לא ניתן להגיע ל־URL',
@@ -2382,7 +2382,7 @@ $1',
 'watcherrortext' => 'אירעה שגיאה בעת שינוי הגדרות רשימת המעקב של "$1".',
 
 'enotif_mailer' => 'הודעות {{SITENAME}}',
-'enotif_reset' => '×\9cס×\9e×\9f ×\90ת כל הדפים כאילו נצפו',
+'enotif_reset' => 'ס×\99×\9e×\95×\9f כל הדפים כאילו נצפו',
 'enotif_newpagetext' => 'זהו דף חדש.',
 'enotif_impersonal_salutation' => 'משתמש של {{SITENAME}}',
 'changed' => 'שונה',
index 386f9c0..e9ce52d 100644 (file)
@@ -70,6 +70,97 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'श्रेणी_वार्ता',
 );
 
+$specialPageAliases = array(
+       'Activeusers'               => array( 'सक्रिय_सदस्य' ),
+       'Allmessages'               => array( 'सभी_सन्देश', 'सभी_संदेश' ),
+       'Allpages'                  => array( 'सभी_पृष्ठ', 'सभी_पन्ने' ),
+       'Ancientpages'              => array( 'पुराने_पृष्ठ', 'पुराने_पन्ने' ),
+       'Badtitle'                  => array( 'खराब_शीर्षक' ),
+       'Blankpage'                 => array( 'रिक्त_पृष्ठ', 'खाली_पृष्ठ' ),
+       'Block'                     => array( 'अवरोधन', 'आइ_पी_अवरोधन', 'सदस्य_अवरोधन' ),
+       'Blockme'                   => array( 'स्वावरोधन', 'स्व_अवरोधन', 'मुझे_रोकिये' ),
+       'Booksources'               => array( 'पुस्तक_स्रोत', 'किताब_स्रोत' ),
+       'BrokenRedirects'           => array( 'टूटे_पुनर्निर्देश', 'टूटे_अनुप्रेष' ),
+       'Categories'                => array( 'श्रेणियाँ' ),
+       'ChangeEmail'               => array( 'ईमेल_बदलें' ),
+       'ChangePassword'            => array( 'कूटशब्द_बदलें' ),
+       'ComparePages'              => array( 'पृष्ठ_तुलना' ),
+       'Confirmemail'              => array( 'ईमेल_पुष्टि', 'ईमेल_पुष्टि_करें' ),
+       'Contributions'             => array( 'योगदान' ),
+       'CreateAccount'             => array( 'खाता_बनाएँ', 'खाता_बनायें', 'खाता_खोलें' ),
+       'Deadendpages'              => array( 'बन्द_पृष्ठ', 'बन्द_पन्ने' ),
+       'DeletedContributions'      => array( 'हटाए_गए_योगदान', 'हटाये_गये_योगदान' ),
+       'Disambiguations'           => array( 'बहुविकल्पी_कड़ियाँ', 'बहुविकल्पित' ),
+       'DoubleRedirects'           => array( 'दुगुने_पुनर्निर्देश', 'दुगुने_अनुप्रेष' ),
+       'EditWatchlist'             => array( 'ध्यानसूची_सम्पादन', 'ध्यानसूची_संपादन', 'ध्यानसूची_सम्पादन_करें' ),
+       'Emailuser'                 => array( 'ईमेल_करें', 'सदस्य_को_ईमेल_करें' ),
+       'Export'                    => array( 'निर्यात' ),
+       'Fewestrevisions'           => array( 'न्यूनतम_अवतरण', 'कम_सम्पादित_पृष्ठ' ),
+       'FileDuplicateSearch'       => array( 'फ़ाइल_प्रति_खोज', 'फाइल_प्रति_खोज', 'संचिका_प्रति_खोज' ),
+       'Filepath'                  => array( 'फ़ाइल_पथ', 'फाइल_पथ', 'संचिका_पथ' ),
+       'Import'                    => array( 'आयात' ),
+       'Invalidateemail'           => array( 'अप्रमाणित_ईमेल', 'अमान्य_ईमेल', 'ईमेल_अमान्य_करें' ),
+       'BlockList'                 => array( 'अवरोध_सूची', 'अवरोधित_सदस्य_सूची', 'अवरोधित_आइ_पी_सूची' ),
+       'LinkSearch'                => array( 'बाहरी_कड़ी_खोज' ),
+       'Listadmins'                => array( 'प्रबन्धक_सूची', 'प्रबंधक_सूची' ),
+       'Listbots'                  => array( 'बॉट_सूची', 'बौट_सूची' ),
+       'Listfiles'                 => array( 'फ़ाइल_सूची', 'फाइल_सूची' ),
+       'Listgrouprights'           => array( 'सदस्य_समूह_अधिकार', 'अधिकार_सूची' ),
+       'Listredirects'             => array( 'पुनर्निर्देश_सूची', 'अनुप्रेष_सूची' ),
+       'Listusers'                 => array( 'सदस्य_सूची' ),
+       'Lockdb'                    => array( 'डाटाबेस_पर_ताला_लगाएँ' ),
+       'Log'                       => array( 'लॉग', 'लौग' ),
+       'Lonelypages'               => array( 'एकाकी_पृष्ठ', 'अकेले_पृष्ठ' ),
+       'Longpages'                 => array( 'लम्बे_पृष्ठ', 'लंबे_पृष्ठ' ),
+       'MergeHistory'              => array( 'इतिहास_विलय' ),
+       'MIMEsearch'                => array( 'माइम_खोज' ),
+       'Mostcategories'            => array( 'सर्वाधिक_श्रेणीकृत', 'सर्वाधिक_श्रेणियाँ' ),
+       'Mostimages'                => array( 'सर्वाधिक_प्रयुक्त_फ़ाइलें', 'सर्वाधिक_प्रयुक्त_फाइलें' ),
+       'Mostlinked'                => array( 'सर्वाधिक_जुड़े_पृष्ठ' ),
+       'Mostlinkedcategories'      => array( 'सर्वाधिक_प्रयुक्त_श्रेणियाँ' ),
+       'Mostlinkedtemplates'       => array( 'सर्वाधिक_प्रयुक्त_साँचे' ),
+       'Mostrevisions'             => array( 'सर्वाधिक_अवतरण', 'अधिकतम_सम्पादित_पृष्ठ', 'अधिकतम_संपादित_पृष्ठ' ),
+       'Movepage'                  => array( 'स्थानान्तरण', 'स्थानांतरण', 'नाम_बदलें' ),
+       'Mycontributions'           => array( 'मेरे_योगदान', 'मेरा_योगदान' ),
+       'Mypage'                    => array( 'मेरा_पृष्ठ', 'मेरा_सदस्य_पृष्ठ' ),
+       'Mytalk'                    => array( 'मेरी_वार्ता', 'मेरी_सदस्य_वार्ता' ),
+       'Myuploads'                 => array( 'मेरे_अपलोड' ),
+       'Newimages'                 => array( 'नई_फ़ाइलें', 'नई_फाइलें', 'नये_चित्र' ),
+       'Newpages'                  => array( 'नए_पृष्ठ', 'नए_पन्ने', 'नये_पृष्ठ' ),
+       'PasswordReset'             => array( 'कूटशब्द_पुनर्स्थापन' ),
+       'PermanentLink'             => array( 'स्थाई_कड़ी', 'स्थायी_कड़ी' ),
+       'Preferences'               => array( 'वरीयताएँ' ),
+       'Prefixindex'               => array( 'उपसर्ग_अनुसार_पृष्ठ', 'उपसर्ग_खोज', 'उपसर्ग_सूचकांक' ),
+       'Protectedpages'            => array( 'सुरक्षित_पृष्ठ' ),
+       'Protectedtitles'           => array( 'सुरक्षित_शीर्षक' ),
+       'Search'                    => array( 'खोज', 'खोजें' ),
+       'Shortpages'                => array( 'छोटे_पृष्ठ', 'छोटे_पन्ने' ),
+       'Specialpages'              => array( 'विशेष_पृष्ठ', 'विशेष_पन्ने' ),
+       'Tags'                      => array( 'टैग', 'चिप्पियाँ' ),
+       'Unblock'                   => array( 'अवरोध_हटाएँ', 'अवरोध_हटायें' ),
+       'Uncategorizedcategories'   => array( 'श्रेणीहीन_श्रेणियाँ' ),
+       'Uncategorizedimages'       => array( 'श्रेणीहीन_फ़ाइलें', 'श्रेणीहीन_फाइलें' ),
+       'Uncategorizedpages'        => array( 'श्रेणीहीन_पृष्ठ', 'श्रेणीहीन_पन्ने' ),
+       'Uncategorizedtemplates'    => array( 'श्रेणीहीन_साँचे' ),
+       'Undelete'                  => array( 'पुनर्स्थापन' ),
+       'Unlockdb'                  => array( 'डाटाबेस_से_ताला_हटाएँ' ),
+       'Unusedcategories'          => array( 'अप्रयुक्त_श्रेणियाँ' ),
+       'Unusedimages'              => array( 'अप्रयुक्त_फ़ाइलें', 'अप्रयुक्त_फाइलें' ),
+       'Unusedtemplates'           => array( 'अप्रयुक्त_साँचे' ),
+       'Upload'                    => array( 'अपलोड' ),
+       'Userlogin'                 => array( 'लॉगिन', 'लौगिन', 'सत्रारम्भ', 'सत्रारंभ' ),
+       'Userlogout'                => array( 'सत्रांत', 'लॉग_आउट', 'लौग_आउट' ),
+       'Userrights'                => array( 'सदस्य_अधिकार' ),
+       'Version'                   => array( 'संस्करण', 'वर्ज़न', 'वर्जन' ),
+       'Wantedcategories'          => array( 'वांछित_श्रेणियाँ' ),
+       'Wantedfiles'               => array( 'वांछित_फ़ाइलें', 'वांछित_फाइलें' ),
+       'Wantedpages'               => array( 'वांछित_पृष्ठ', 'वांछित_पन्ने' ),
+       'Wantedtemplates'           => array( 'वांछित_साँचे' ),
+       'Watchlist'                 => array( 'ध्यानसूची' ),
+       'Whatlinkshere'             => array( 'कड़ियाँ', 'यहाँ_की_कड़ियाँ', 'यहाँ_क्या_जुड़ता_है' ),
+       'Withoutinterwiki'          => array( 'अन्तरविकि_रहित', 'अंतरविकि_रहित' ),
+);
+
 $digitTransformTable = array(
        '0' => '०', # &#x0966;
        '1' => '१', # &#x0967;
@@ -475,6 +566,8 @@ $2',
 'ns-specialprotected' => 'विशेष पृष्ठ सम्पादित नहीं किये जा सकते।',
 'titleprotected' => 'सदस्य [[User:$1|$1]] ने इस शीर्षक का पृष्ठ बनाने से सुरक्षित किया हुआ है।
 इसके लिये निम्न कारण दिया गया है: "\'\'$2\'\'"',
+'invalidtitle-knownnamespace' => '"$2" नामस्थान और "$3" नाम वाला गलत शीर्षक',
+'invalidtitle-unknownnamespace' => 'अज्ञात नामस्थान संख्या $1 और नाम "$2" वाला गलत शीर्षक',
 
 # Virus scanner
 'virus-badscanner' => "गलत जमाव: अज्ञात वायरस जाँचक: ''$1''",
@@ -567,6 +660,7 @@ $2',
 'invalidemailaddress' => 'ई-मेल पता नहीं माना जा सकता क्योंकि ये किसी अवैध स्वरूप में है।
 कृपया एक सही तरीके से स्वरूपित ई-मेल पता दें अथवा उस कोष्ठक को रिक्त ही रहने दें।',
 'cannotchangeemail' => 'इस विकी पर सदस्य खाते का ई-मेल पता नहीं बदला जा सकता।',
+'emaildisabled' => 'यह साइट ई-मेल नहीं भेज सकती।',
 'accountcreated' => 'खाता निर्मित',
 'accountcreatedtext' => '$1 के लिये खाता निर्मित कर दिया गया है।',
 'createaccount-title' => '{{SITENAME}} के लिये खाता बनाएँ',
@@ -768,6 +862,7 @@ $2
 'note' => "'''सूचना:'''",
 'previewnote' => "'''याद रखें, यह केवल एक झलक है।'''
 आपके बदलाव अभी तक संजोये नहीं गए हैं!",
+'continue-editing' => 'संपादन जारी रखें',
 'previewconflict' => 'यह झलक ऊपरी पाठ सम्पादन क्षेत्र में हुए बदलाव दिखाती है, और यदि आप अभी संजोते हैं तो यही पाठ संजोया जाएगा।',
 'session_fail_preview' => "'''क्षमा करें! सेशन डाटा के नष्ट होने के कारण आपके बदलाव संजोये नहीं जा सके।'''
 कृपया पुन: यत्न करें।
@@ -851,11 +946,12 @@ $2
 'edit-no-change' => 'आपने कोई बदलाव ही नहीं किए, अतः आपके इस संपादन को नज़रंदाज़ कर दिया गया है।',
 'edit-already-exists' => 'नया पृष्ठ बनाया नहीं जा सका।
 यह पहले से मौजूद है।',
+'defaultmessagetext' => 'संदेश का डिफ़ॉल्ट पाठ',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''चेतावनी:''' इस पृष्ठ पर बहुत अधिक संख्या में कीमती पार्सर फ़ंक्शनों का प्रयोग किया गया है।
 
-इनका प्रयोग $2 से कम बार होना चाहिये, इस समय प्रयोग $1 बार {{PLURAL:$2|है|हैं}}।",
+इनका प्रयोग $2 से कम बार होना चाहिये, इस समय प्रयोग $1 बार {{PLURAL:$1|है|हैं}}।",
 'expensive-parserfunction-category' => 'कीमती पार्सर फ़ंक्शनों का अत्यधिक प्रयोग कर रहे पृष्ठ',
 'post-expand-template-inclusion-warning' => "'''चेतावनी:''' साँचे जुड़ने की सीमा पार हो चुकी है।
 कुछ साँचे नहीं जुड़ेंगे।",
@@ -1046,6 +1142,7 @@ $1",
 
 # Diffs
 'history-title' => '"$1" का अवतरण इतिहास',
+'difference-title' => '"$1" के अवतरणों में अंतर',
 'difference-multipage' => '(पृष्ठों के बीच अन्तर)',
 'lineno' => 'पंक्ति $1:',
 'compareselectedversions' => 'चुने हुए अवतरणों की तुलना करें',
@@ -1142,6 +1239,7 @@ $1",
 'prefs-beta' => 'बीटा विशेषताएँ',
 'prefs-datetime' => 'दिनांक तथा समय',
 'prefs-labs' => 'लैब विशेषताएँ',
+'prefs-user-pages' => 'सदस्य पृष्ठ',
 'prefs-personal' => 'सदस्य व्यक्तिरेखा',
 'prefs-rc' => 'हाल में हुए बदलाव',
 'prefs-watchlist' => 'ध्यानसूची',
@@ -1406,7 +1504,7 @@ HTML टैग की जाँच करें।',
 'nchanges' => '$1 {{PLURAL:$1|बदलाव}}',
 'recentchanges' => 'हाल में हुए बदलाव',
 'recentchanges-legend' => 'हाल के परिवर्तन संबंधी विकल्प',
-'recentchangestext' => 'इस विकि पर हाल में हुए बदलाव इस पृष्ठ पर देखे जा सकते हैं।',
+'recentchanges-summary' => 'इस विकिपर हाल में हुए बदलाव इस पन्ने पर देखें जा सकतें हैं।',
 'recentchanges-feed-description' => 'इस विकि पर हाल में हुए बदलाव इस फ़ीड में देखे जा सकते हैं।',
 'recentchanges-label-newpage' => 'इस संपादन से नया पृष्ठ बना',
 'recentchanges-label-minor' => 'यह एक छोटा सम्पादन है',
@@ -1436,6 +1534,7 @@ HTML टैग की जाँच करें।',
 'newsectionsummary' => '/* $1 */ नया अनुभाग',
 'rc-enhanced-expand' => 'विस्तृत जानकारी दिखाएँ (इसके लिए जावास्क्रिप्ट चाहिए)',
 'rc-enhanced-hide' => 'विस्तृत जानकारी छिपाएँ',
+'rc-old-title' => 'मूल रूप से "$1" नाम से बनाया गया था',
 
 # Recent changes linked
 'recentchangeslinked' => 'पृष्ठ से जुड़े बदलाव',
@@ -1964,6 +2063,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 'allpagesbadtitle' => 'दिया गया शीर्षक अमान्य था या उसमें अंतरभाषीय अथवा अंतरविकी उपसर्ग था।
 इसमें संभवतः एक या एक से अधिक ऐसे कैरैक्टर हैं जो शीर्षकों में प्रयुक्त नहीं हो सकते हैं।',
 'allpages-bad-ns' => '{{SITENAME}} में "$1" नामस्थान नहीं है।',
+'allpages-hide-redirects' => 'पुनर्निर्देश छुपाएँ',
 
 # Special:Categories
 'categories' => 'श्रेणियाँ',
@@ -2369,10 +2469,10 @@ $1',
 'whatlinkshere-prev' => '{{PLURAL:$1|पिछला|पिछले $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|अगला|अगले $1}}',
 'whatlinkshere-links' => '← कड़ियाँ',
-'whatlinkshere-hideredirs' => '$1 à¤\85नà¥\81पà¥\8dरà¥\87षितà¥\87à¤\82',
+'whatlinkshere-hideredirs' => '$1 à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87श',
 'whatlinkshere-hidetrans' => '$1 ट्रान्स्क्ल्युजन्स',
-'whatlinkshere-hidelinks' => '$1 à¤\95ड़ियाà¤\82',
-'whatlinkshere-hideimages' => '$1 à¤\9aितà¥\8dर à¤\95ड़ियाà¤\82',
+'whatlinkshere-hidelinks' => '$1 à¤\95ड़ियाà¤\81',
+'whatlinkshere-hideimages' => '$1 à¤\9aितà¥\8dर à¤\95ड़ियाà¤\81',
 'whatlinkshere-filters' => 'छन्ने',
 
 # Block/unblock
@@ -2591,17 +2691,17 @@ $1 को बाध्य करने का कारण है: "$2"',
 'move-subpages' => 'उप पृष्ठ भी ले जाएँ ($1 तक)',
 'move-talk-subpages' => 'वार्ता पृष्ठ के उप पृष्ठ भी ले जाएँ ($1 तक)',
 'movepage-page-exists' => '$1 पृष्ठ पहले से अस्तित्वमें हैं और उसपर अपनेआप पुनर्लेखन नहीं कर सकतें।',
-'movepage-page-moved' => '$1 à¤¯à¤¹ à¤ªà¥\83षà¥\8dठ $2 à¤\87स à¤¨à¤¾à¤®à¤ªà¤° à¤¸à¥\8dथानाà¤\82तरित à¤\95र à¤¦à¤¿à¤¯à¤¾ à¤\97या।',
-'movepage-page-unmoved' => '$1 à¤¯à¤¹ à¤ªà¥\83षà¥\8dठ $2 à¤\87स à¤¨à¤¾à¤®à¤ªà¤° à¤¸à¥\8dथानाà¤\82तरित à¤¨à¤¹à¥\80à¤\82 à¤\95र à¤ªà¤¾à¤¯à¥\87à¤\82।',
-'movepage-max-pages' => 'ज्यादासे ज्यादा $1 पृष्ठ स्थानांतरित कर {{PLURAL:$1|दिया गया है|दिये गये हैं}}, अब और पृष्ठ अपनेआप स्थानांतरित नहीं होंगे।',
-'movelogpage' => 'सà¥\8dथानानà¥\8dतरण à¤¸à¥\82à¤\9aà¥\80',
-'movelogpagetext' => 'नाम à¤¬à¤¦à¤²à¥\87 à¤\97यà¥\87 à¤²à¥\87à¤\96à¥\8bà¤\82à¤\95à¥\80 à¤¸à¥\82à¤\9aà¥\80 à¤¨à¥\80à¤\9aà¥\87 à¤¦à¥\80 à¤\97à¤\88 à¤¹à¥\88à¤\82।',
+'movepage-page-moved' => '$1 à¤ªà¥\83षà¥\8dठ $2 à¤¨à¤¾à¤® à¤ªà¤° à¤¸à¥\8dथानाà¤\82तरित à¤\95र à¤¦à¤¿à¤¯à¤¾ à¤\97या à¤¹à¥\88।',
+'movepage-page-unmoved' => '$1 à¤ªà¥\83षà¥\8dठ $2 à¤¨à¤¾à¤® à¤ªà¤° à¤¸à¥\8dथानाà¤\82तरित à¤¨à¤¹à¥\80à¤\82 à¤\95िया à¤\9cा à¤¸à¤\95ा।',
+'movepage-max-pages' => '$1 की अधिकतम सीमा तक पृष्ठ स्थानांतरित कर {{PLURAL:$1|दिया गया है|दिये गये हैं}}, अब और पृष्ठ अपने-आप स्थानांतरित नहीं होंगे।',
+'movelogpage' => 'सà¥\8dथानानà¥\8dतरण à¤²à¥\89à¤\97',
+'movelogpagetext' => 'नà¥\80à¤\9aà¥\87 à¤¸à¤­à¥\80 à¤¸à¥\8dथानानà¥\8dतरणà¥\8bà¤\82 à¤\95à¥\80 à¤¸à¥\82à¤\9aà¥\80 à¤¦à¥\80 à¤\97à¤\88 à¤¹à¥\88।',
 'movesubpage' => '{{PLURAL:$1|उप पृष्ठ|उप पृष्ठ}}',
 'movesubpagetext' => 'नीचे $1 {{PLURAL:$1|पृष्ठ दिखाया गया है, जो इस पृष्ठ का उप पृष्ठ है|पृष्ठ दिखाया गया है, जो इस पृष्ठ के उप पृष्ठ हैं}}।',
 'movenosubpage' => 'इस पृष्ठ के कोई उपपृष्ठ नहीं हैं।',
 'movereason' => 'कारण:',
 'revertmove' => 'पुराने अवतरण पर ले जाएं',
-'delete_and_move' => 'हà¤\9fाया à¤\94र à¤¨à¤¾à¤® à¤¬à¤¦à¤²à¤¾',
+'delete_and_move' => 'हà¤\9fाà¤\8fà¤\81 à¤\94र à¤¨à¤¾à¤® à¤¬à¤¦à¤²à¥\87à¤\82',
 'delete_and_move_text' => '==हटाने की जरूरत==
 लक्ष्य पृष्ठ "[[:$1]]" पहले से अस्तित्वमें हैं।
 नाम बदलने के लिये क्या आप इसे हटाना चाहतें हैं?',
index e349a77..80c55df 100644 (file)
@@ -1328,7 +1328,7 @@ Iske $1 {{PLURAL:$1|character|characters}} se kamti rahe ke chaahi.',
 'nchanges' => '$1 {{PLURAL:$1|badlao|badlao}}',
 'recentchanges' => 'Nawaa badlao',
 'recentchanges-legend' => 'Nawaa badlao options',
-'recentchangestext' => 'Wiki me ii panna ke nawaa badlao pe dhyan rakho.',
+'recentchanges-summary' => 'Wiki me ii panna ke nawaa badlao pe dhyan rakho.',
 'recentchanges-feed-description' => 'Abhi haali me bhae ii wiki ke feed me ke track karo.',
 'recentchanges-label-newpage' => 'Ii badlao ek nawaa panna banais hae',
 'recentchanges-label-minor' => 'Ii ek chhota badlao hae',
index a056e70..70c06b3 100644 (file)
@@ -1243,6 +1243,7 @@ Primijetite da uporaba navigacijskih poveznica resetira Vaše izbore u stupcu.',
 
 # Diffs
 'history-title' => 'Povijest izmjena stranice "$1"',
+'difference-title' => '$1: Razlika između inačica',
 'difference-multipage' => '(Razlika između stranica)',
 'lineno' => 'Redak $1:',
 'compareselectedversions' => 'Usporedi odabrane inačice',
@@ -1595,7 +1596,7 @@ Ne smije biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.',
 'nchanges' => '{{PLURAL:$1|$1 promjena|$1 promjene|$1 promjena}}',
 'recentchanges' => 'Nedavne promjene',
 'recentchanges-legend' => 'Izbornik nedavnih promjena',
-'recentchangestext' => 'Na ovoj stranici možete pratiti nedavne promjene u wikiju.',
+'recentchanges-summary' => 'Na ovoj stranici možete pratiti nedavne promjene u wikiju.',
 'recentchanges-feed-description' => 'Na ovoj stranici možete pratiti nedavne promjene u wikiju.',
 'recentchanges-label-newpage' => 'Ova izmjena stvorila je novu stranicu',
 'recentchanges-label-minor' => 'Ovo je manja izmjena',
index 25a3700..44def86 100644 (file)
@@ -1077,9 +1077,9 @@ Zawěsć, zo tuta změna stawiznisku kontinuitu strony wobchowuje.',
 'mergelogpagetext' => 'Deleka je lisćina najaktualnišich zjednoćenjow stawiznow dweju stronow.',
 
 # Diffs
-'history-title' => 'Stawizny wersijow strony „$1“',
-'difference-title' => 'Rozdźěl mjez wersijemi "$1"',
-'difference-title-multipage' => 'Rozdźěl mjez stronami "$1" a "$2"',
+'history-title' => '$1: Wersijowe stawizny',
+'difference-title' => '$1: Rozdźěl mjez wersijemi',
+'difference-title-multipage' => '$1 a $2: Rozdźěl mjez stronami',
 'difference-multipage' => '(Rozdźěl mjez stronami)',
 'lineno' => 'Rjadka $1:',
 'compareselectedversions' => 'Wubranej wersiji přirunać',
@@ -1175,6 +1175,7 @@ Spytaj swoje naprašowanje z prefiksom ''all:'' wužiwać, zo by wšón wobsah (
 'prefs-beta' => 'Betafunkcije',
 'prefs-datetime' => 'Datum a čas',
 'prefs-labs' => 'Laborowe funkcije',
+'prefs-user-pages' => 'Wužiwarske strony',
 'prefs-personal' => 'Wužiwarski profil',
 'prefs-rc' => 'Aktualne změny',
 'prefs-watchlist' => 'Wobkedźbowanki',
@@ -1436,7 +1437,7 @@ Smě mjenje hač $1 {{PLURAL:$1|znamješko|znamješce|znamješka|znamješkow}} d
 'nchanges' => '$1 {{PLURAL:$1|změna|změnje|změny|změnow}}',
 'recentchanges' => 'Aktualne změny',
 'recentchanges-legend' => 'Opcije aktualnych změnow',
-'recentchangestext' => 'Na tutej stronje móžeš najaktualniše změny w {{GRAMMAR:lokatiw|{{SITENAME}}}} wobkedźbować.',
+'recentchanges-summary' => 'Na tutej stronje móžeš najaktualniše změny w {{GRAMMAR:lokatiw|{{SITENAME}}}} wobkedźbować.',
 'recentchanges-feed-description' => 'Slěduj najaktualniše změny {{GRAMMAR:genitiw|{{SITENAME}}}} w tutym kanalu.',
 'recentchanges-label-newpage' => 'Tuta změna je nowu stronu wutworiła',
 'recentchanges-label-minor' => 'To je snadna změna',
@@ -1640,14 +1641,15 @@ $1',
 'backend-fail-writetemp' => 'Njeda so do temporerneje dataje pisać.',
 'backend-fail-closetemp' => 'Temporerna dataja njeda so začinić.',
 'backend-fail-read' => 'Dataja $1 njeda so čitać',
-'backend-fail-create' => 'Dataja $1 njeda so wutworić',
-'backend-fail-maxsize' => 'Dataja $1 njeda so wutworić, dokelž je wjetša hač {{PLURAL:$2|$2 bajt|$2 bajtaj|$2 bajty|$2 bajtow}}.',
+'backend-fail-create' => 'Dataja $1 njeda so pisać.',
+'backend-fail-maxsize' => 'Dataja $1 njeda so pisać, dokelž je wjetša hač {{PLURAL:$2|jedyn bajt|$2 bajtaj|$2 bajty|$2 bajtow}}.',
 'backend-fail-readonly' => 'Składowanski backend "$1" da so tuchwilu jenož čitać. Přičina je była: "$2"',
 'backend-fail-synced' => 'Dataja "$1" je znutřka interneho składowanskeho backenda w inkonsistentnym stawje',
 'backend-fail-connect' => 'Zwisk z datajowym składowanskim backendom "$1" móžno njeje.',
 'backend-fail-internal' => 'W składowanskim backendźe "$1" je njeznaty zmylk wustupił.',
 'backend-fail-contenttype' => 'Wobsahowy typ dataje, kotraž ma so na "$1" składować, njeda so zwěsćić.',
 'backend-fail-batchsize' => 'Staplowa dataja, kotraž {{PLURAL:$1|jednu operaciju|$1 operaciji|$1 operacije|$1 operacijow}} wobsahuje,  je so  na składowanski backend pósłała; limit je $2 {{PLURAL:$2|operaciju|operaciji|operacije|operacijow}} .',
+'backend-fail-usable' => 'Dataja $1 njeda so njedosahacych prawow  dla abo falowacych zapisow dla pisać.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Njeje žadyn zwisk ze žurnalowej datowej banku za składowanski backend "$1" móžno.',
@@ -1710,7 +1712,6 @@ Za optimalnu wěstotu je img_auth.php znjemóžnjeny.',
 'http-curl-error' => 'Zmylk při wołanju URL: $1',
 'http-host-unreachable' => 'URL njeda so docpěć.',
 'http-bad-status' => 'Problem je za HTTP-naprašowanje wustupił: $1 $2',
-'http-truncated-body' => 'Wobsah naprašowanja je so jenož zdźěla přijał.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'URL docpějomny njeje.',
index 8921df8..b6d1ca7 100644 (file)
@@ -784,6 +784,7 @@ A visszaélések elkerülése végett {{PLURAL:$1|egy|$1}} óránként csak egy
 'emailconfirmlink' => 'E-mail cím megerősítése',
 'invalidemailaddress' => 'A megadott e-mail cím érvénytelen formátumú. Kérlek, adj meg egy érvényes e-mail címet vagy hagyd üresen azt a mezőt.',
 'cannotchangeemail' => 'Ezen a wikin nem módosítható a fiókhoz tartozó e-mail cím.',
+'emaildisabled' => 'Ezen az oldalon nem lehet küldeni e-mailek.',
 'accountcreated' => 'Felhasználói fiók létrehozva',
 'accountcreatedtext' => '$1 felhasználói fiókja sikeresen létrejött.',
 'createaccount-title' => 'Új {{SITENAME}}-azonosító létrehozása',
@@ -1056,6 +1057,7 @@ Nem lett magyarázat csatolva.',
 'edit-no-change' => 'A szerkesztésed figyelmen kívül lett hagyva, mivel nem változtattál a lap szövegén.',
 'edit-already-exists' => 'Az új lap nem készíthető el.
 Már létezik.',
+'defaultmessagetext' => 'Alapértelmezett szöveg',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Figyelem: ezen a lapon túl sok erőforrásigényes elemzőfüggvény-hívás található.
@@ -1210,7 +1212,7 @@ Ellenőrizd a naplókat.',
 
 # Suppression log
 'suppressionlog' => 'Adatvédelmibiztos-napló',
-'suppressionlogtext' => 'Lenn látható az adminisztrátorok elől legutóbb elrejtett törlések és blokkok listája. Lásd a [[Special:BlockList|blokkolt IP-címek listája]] lapot a jelenleg érvényben lévő kitiltásokhoz és blokkokhoz.',
+'suppressionlogtext' => 'Lenn látható az adminisztrátorok elől legutóbb elrejtett törlések és blokkok listája. Lásd a [[Special:BlockList|blokkok listája]] lapot a jelenleg érvényben lévő kitiltásokhoz és blokkokhoz.',
 
 # History merging
 'mergehistory' => 'Laptörténetek egyesítése',
@@ -1243,6 +1245,7 @@ Győződj meg róla, hogy a laptörténet folytonossága megmarad.',
 
 # Diffs
 'history-title' => 'A(z) „$1” laptörténete',
+'difference-title' => '„$1” változatai közötti eltérés',
 'difference-multipage' => '(Lapok közti eltérés)',
 'lineno' => '$1. sor:',
 'compareselectedversions' => 'Kiválasztott változatok összehasonlítása',
@@ -1337,6 +1340,7 @@ Győződj meg róla, hogy a laptörténet folytonossága megmarad.',
 'prefs-beta' => 'Béta funkciók',
 'prefs-datetime' => 'Dátum és idő',
 'prefs-labs' => 'Kísérleti funkciók',
+'prefs-user-pages' => 'Felhasználói lapok',
 'prefs-personal' => 'Felhasználói adatok',
 'prefs-rc' => 'Friss változtatások',
 'prefs-watchlist' => 'Figyelőlista',
@@ -1597,7 +1601,7 @@ A műveletet nem lehet visszavonni.',
 'nchanges' => '{{PLURAL:$1|egy|$1}} változtatás',
 'recentchanges' => 'Friss változtatások',
 'recentchanges-legend' => 'A friss változások beállításai',
-'recentchangestext' => 'Ezen a lapon a wikiben történt legutóbbi változásokat lehet nyomonkövetni.',
+'recentchanges-summary' => 'Ezen a lapon a wikiben történt legutóbbi fejleményeket lehet nyomon követni.',
 'recentchanges-feed-description' => 'Kövesd a wiki friss változtatásait ezzel a hírcsatornával.',
 'recentchanges-label-newpage' => 'Ezzel a szerkesztéssel egy új lap jött létre',
 'recentchanges-label-minor' => 'Ez egy apró szerkesztés',
@@ -1800,7 +1804,8 @@ Kérjük, hogy lépj kapcsolatba egy  [[Special:ListUsers/sysop|adminisztrátorr
 'backend-fail-writetemp' => 'Nem lehet írni az ideiglenes fájlba.',
 'backend-fail-closetemp' => 'Nem lehet lezárni az ideiglenes fájlt.',
 'backend-fail-read' => 'Nem sikerült olvasni ebből a fájlból: $1.',
-'backend-fail-create' => 'Nem sikerült létrehozni ezt a fájlt: $1.',
+'backend-fail-create' => 'Nem sikerült írni ebbe a fájlba: $1.',
+'backend-fail-maxsize' => 'Nem lehet írni ezt a fájlt: $1, mert a mérete nagyobb, mint $2 bájt.',
 'backend-fail-readonly' => 'A(z) „$1” tárolórendszer jelenleg csak olvasható. Ennek oka a következő: „$2”',
 'backend-fail-synced' => 'A(z) „$1” fájl inkonzisztens állapotban van a tárolórendszerek között',
 'backend-fail-connect' => 'Nem sikerült csatlakozni a(z) „$1” tárolórendszerhez.',
@@ -2137,6 +2142,11 @@ A napló típusának, a szerkesztő nevének (kis- és nagybetűérzékeny), vag
 'allpages-bad-ns' => 'A(z) {{SITENAME}} webhelyen nincs "$1" névtér.',
 'allpages-hide-redirects' => 'Átirányítások elrejtése',
 
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'A lap tárolt változatát látod, aminek utolsó frissítése ennyi ideje volt:  $1',
+'cachedspecial-viewing-cached-ts' => 'Az oldal tárolt változatát látod, ami eltérhet az aktuálistól.',
+'cachedspecial-refresh-now' => 'A legfrissebb változat mutatása.',
+
 # Special:Categories
 'categories' => 'Kategóriák',
 'categoriespagetext' => 'A következő {{PLURAL:$1|kategória tartalmaz|kategóriák tartalmaznak}} lapokat vagy fájlokat.
@@ -2627,7 +2637,7 @@ Add meg a blokkolás okát is (például idézd a blokkolandó személy által v
 'blocklog-showsuppresslog' => 'Ez a felhasználó korábban blokkot kapott, és a naplóbejegyzés el lett rejtve. Az elrejtési napló alább látható tájékoztatásként:',
 'blocklogentry' => '„[[$1]]” blokkolva $2 $3 időtartamra',
 'reblock-logentry' => 'megváltoztatta [[$1]] blokkjának beállításait, a blokk lejárta: $2 $3',
-'blocklogtext' => 'Ez a felhasználókra helyezett blokkoknak és azok feloldásának listája. Az IP-autoblokkok nem szerepelnek a listában. Lásd még [[Special:BlockList|a jelenleg életben lévő blokkok listáját]].',
+'blocklogtext' => 'Ez a felhasználókra helyezett blokkoknak és azok feloldásának listája. Az automatikus blokkolt IP címek nem szerepelnek a listában. Lásd még [[Special:BlockList|a jelenleg életben lévő blokkok listáját]].',
 'unblocklogentry' => '„$1” blokkolása feloldva',
 'block-log-flags-anononly' => 'csak anonok',
 'block-log-flags-nocreate' => 'nem hozhat létre új fiókot',
@@ -3191,15 +3201,15 @@ míg a többi elem a táblázat összecsukása után alapértelmezett esetben re
 'exif-subsectimedigitized' => 'DateTimeDigitized almásodpercek',
 'exif-exposuretime' => 'Expozíciós idő',
 'exif-exposuretime-format' => '$1 mp. ($2)',
-'exif-fnumber' => 'F szám',
+'exif-fnumber' => 'Rekesznyílás',
 'exif-exposureprogram' => 'Expozíciós program',
 'exif-spectralsensitivity' => 'Színkép érzékenysége',
-'exif-isospeedratings' => 'ISO érzékenység minősítése',
+'exif-isospeedratings' => 'ISO érzékenység értéke',
 'exif-shutterspeedvalue' => 'APEX zársebesség',
 'exif-aperturevalue' => 'APEX lencsenyílás',
 'exif-brightnessvalue' => 'APEX fényerő',
-'exif-exposurebiasvalue' => 'Expozíciós dőltség',
-'exif-maxaperturevalue' => 'Legnagyobb földi lencsenyílás',
+'exif-exposurebiasvalue' => 'Expozíciós eltolás',
+'exif-maxaperturevalue' => 'Legnagyobb rekesznyílás',
 'exif-subjectdistance' => 'Tárgy távolsága',
 'exif-meteringmode' => 'Fénymérési mód',
 'exif-lightsource' => 'Fényforrás',
@@ -3397,7 +3407,7 @@ míg a többi elem a táblázat összecsukása után alapértelmezett esetben re
 'exif-flash-return-2' => 'strobe return light nincs érzékelve',
 'exif-flash-return-3' => 'strobe return light érzékelve',
 'exif-flash-mode-1' => 'Kötelező vaku',
-'exif-flash-mode-2' => 'Kötelező vakuelnyomás',
+'exif-flash-mode-2' => 'Kötelező vakukikapcsolás',
 'exif-flash-mode-3' => 'automatikus mód',
 'exif-flash-function-1' => 'Nincs vakufunkció',
 'exif-flash-redeye-1' => 'Vörös szem eltávolító mód',
@@ -3732,6 +3742,9 @@ A MediaWikit abban a reményben terjesztjük, hogy hasznos lesz, de GARANCIA NÉ
 'version-software' => 'Telepített szoftverek',
 'version-software-product' => 'Termék',
 'version-software-version' => 'Verzió',
+'version-entrypoints' => 'Belépési pont URL-címek',
+'version-entrypoints-header-entrypoint' => 'Belépési pont',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Fájlelérés',
@@ -3918,4 +3931,15 @@ A képek teljes méretben jelennek meg, más fájltípusok közvetlenül a hozz
 'api-error-uploaddisabled' => 'A feltöltés le van tiltva ezen a wikin.',
 'api-error-verification-error' => 'A fájl feltehetőleg sérült, vagy hibás a kiterjesztése.',
 
+# Durations
+'duration-seconds' => '{{PLURAL: $1|másodperc|másodperc}}',
+'duration-minutes' => '{{PLURAL: $1|perc|perc}}',
+'duration-hours' => '{{PLURAL:$1|egy|$1}} óra',
+'duration-days' => '{{PLURAL:$1|egy|$1}} nap',
+'duration-weeks' => '{{PLURAL: $1|hét|hét}}',
+'duration-years' => '{{PLURAL: $1|év|év}}',
+'duration-decades' => '{{PLURAL:$1|egy|$1}} évtized',
+'duration-centuries' => '{{PLURAL:$1|egy|$1}} évszázad',
+'duration-millennia' => '{{PLURAL:$1|egy|$1}} évezred',
+
 );
index 0996c38..ce350d1 100644 (file)
@@ -1027,6 +1027,8 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'revdelete-success' => "'''Տարբերակի տեսանելիությունը բարեհաջող թարմացված է։'''",
 'logdelete-success' => "'''Իրադարձության տեսանելիությունը փոփոխված է։'''",
 'revdel-restore' => 'Փոխել տեսանելիությունը',
+'revdel-restore-deleted' => 'ջնջված խմբագրումներ',
+'revdel-restore-visible' => 'տեսանելի խմբագրումներ',
 'pagehist' => 'Էջի պատմություն',
 'deletedhist' => 'Ջնջումների պատմություն',
 'revdelete-otherreason' => 'Ուրիշ/հավելյալ պատճառ՝',
@@ -1034,11 +1036,17 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'revdelete-edit-reasonlist' => 'Խմբագրել ջնջման պատճառների ցանկը',
 'revdelete-offender' => 'Էջի տարբերակի հեղինակ՝',
 
+# History merging
+'mergehistory-reason' => 'Պատճառ.',
+
 # Merge log
 'revertmerge' => 'Անջատել',
 
 # Diffs
 'history-title' => '«$1» էջի փոփոխումների պատմություն',
+'difference-title' => '$1: Խմագրումների տարբերություն',
+'difference-title-multipage' => '$1 և $2: Խմբագրումների տարբերություն',
+'difference-multipage' => '(Էջերի տարերություն)',
 'lineno' => 'Տող  $1.',
 'compareselectedversions' => 'Համեմատել ընտրած տարբերակները',
 'showhideselectedversions' => 'Ցուցադրել/թաքցնել ընտրված խմբագրումները',
@@ -1278,6 +1286,8 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-edit' => 'խմբագրել այս էջը',
+'action-upload' => 'Բեռնել այս ֆայլը',
+'action-upload_by_url' => 'Բեռնել այս ֆայլը URL-ից',
 'action-delete' => 'Ջնջել այս էջը',
 'action-deleterevision' => 'Ջնջել այս փոփոխությունը',
 'action-deletedhistory' => 'Դիտել այս էջի ջնջված պատմությունը',
@@ -1286,7 +1296,7 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'nchanges' => '$1 {{PLURAL:$1|փոփոխություն|փոփոխություն}}',
 'recentchanges' => 'Վերջին փոփոխություններ',
 'recentchanges-legend' => 'Վերջին փոփոխությունների նախընտրություններ',
-'recentchangestext' => 'Հետևեք վիքիում կատարված վերջին փոփոխություններին այս էջում։',
+'recentchanges-summary' => 'Հետևեք վիքիում կատարված վերջին փոփոխություններին այս էջում։',
 'recentchanges-feed-description' => 'Հետևեք վիքիում կատարված վերջին փոփոխություններին այս սնուցման մեջ։',
 'recentchanges-label-newpage' => 'Այս խմբագրմամբ ստեղծվել է նոր էջ',
 'recentchanges-label-minor' => 'Սա չնչին խմբագրում է',
index 79c8f43..9c864a4 100644 (file)
@@ -1131,9 +1131,9 @@ Nota que le uso del ligamines de navigation causara le perdita de tote cambios i
 'mergelogpagetext' => 'Infra es un lista del fusiones le plus recente de un historia de pagina in un altere.',
 
 # Diffs
-'history-title' => 'Historia de versiones de "$1"',
-'difference-title' => 'Differentia inter versiones de "$1"',
-'difference-title-multipage' => 'Differentia inter paginas "$1" e "$2"',
+'history-title' => '$1: Historia de versiones',
+'difference-title' => '$1: Differentia inter versiones',
+'difference-title-multipage' => '$1 e $2: Differentia inter paginas',
 'difference-multipage' => '(Differentia inter paginas)',
 'lineno' => 'Linea $1:',
 'compareselectedversions' => 'Comparar versiones seligite',
@@ -1493,7 +1493,7 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'nchanges' => '$1 {{PLURAL:$1|modification|modificationes}}',
 'recentchanges' => 'Modificationes recente',
 'recentchanges-legend' => 'Optiones del modificationes recente',
-'recentchangestext' => 'Seque le plus recente modificationes a {{SITENAME}} in iste pagina.',
+'recentchanges-summary' => 'Seque le plus recente modificationes a {{SITENAME}} in iste pagina.',
 'recentchanges-feed-description' => 'Seque le modificationes le plus recente al wiki in iste syndication.',
 'recentchanges-label-newpage' => 'Iste modification creava un nove pagina',
 'recentchanges-label-minor' => 'Isto es un modification minor',
@@ -1705,14 +1705,15 @@ Si le problema persiste, contacta un [[Special:ListUsers/sysop|administrator]].'
 'backend-fail-writetemp' => 'Non poteva scriber in file temporari.',
 'backend-fail-closetemp' => 'Non poteva clauder file temporari.',
 'backend-fail-read' => 'Non poteva leger le file $1',
-'backend-fail-create' => 'Non poteva crear le file $1',
-'backend-fail-maxsize' => 'Impossibile crear le file $1 perque illo es plus grande que {{PLURAL:$2|$2 byte|$2 bytes}}.',
+'backend-fail-create' => 'Non poteva crear le file $1.',
+'backend-fail-maxsize' => 'Impossibile scriber le file $1 perque illo es plus grande que {{PLURAL:$2|un byte|$2 bytes}}.',
 'backend-fail-readonly' => 'Le systema de immagazinage "$1" es actualmente in lectura sol. Le sequente motivo esseva specificate: "$2"',
 'backend-fail-synced' => 'Le file "$1" es in un stato inconsistente inter le systemas interne de immagazinage',
 'backend-fail-connect' => 'Impossibile connecter al systema de immagazinage "$1".',
 'backend-fail-internal' => 'Un error incognite occurreva in le systema de immagazinage "$1".',
 'backend-fail-contenttype' => 'Non poteva determinar le typo de contento del file a immagazinar in "$1".',
 'backend-fail-batchsize' => 'Le systema de immagazinage ha recipite un lot de $1 {{PLURAL:$1|operation|operationes}} de file; le limite es $2 {{PLURAL:$2|operation|operationes}}.',
+'backend-fail-usable' => 'Non poteva scriber le file $1 a causa de permissiones insufficiente o directorios/contentores mancante.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Non poteva connecter al base de datos de jornal pro le systema de immagazinage "$1".',
@@ -1775,7 +1776,6 @@ Pro securitate optimal, img_auth.php es disactivate.',
 'http-curl-error' => 'Error al obtener datos del URL: $1',
 'http-host-unreachable' => 'Non poteva acceder al URL',
 'http-bad-status' => 'Un problema occurreva durante le requesta HTTP: $1 $2',
-'http-truncated-body' => 'Le corpore del requesta ha essite solo partialmente recipite.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Non poteva acceder al URL',
index b6c9fde..2ae5fe0 100644 (file)
@@ -693,8 +693,8 @@ Mungkin telah dihapus oleh orang lain.',
 'cannotdelete-title' => 'Tidak dapat menghapus halaman "$1"',
 'badtitle' => 'Judul tidak sah',
 'badtitletext' => 'Judul halaman yang diminta tidak sah, kosong, atau judul antarbahasa atau antarwiki yang salah sambung.',
-'perfcached' => 'Data berikut ini diambil dari singgahan dan mungkin bukan data mutakhir: A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => 'Data berikut ini diambil dari singgahan dan terakhir diperbarui pada $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => 'Data berikut ini diambil dari singgahan dan mungkin bukan data mutakhir. {{PLURAL:$1||}}$1 hasil maksimal tersedia di tembolok.',
+'perfcachedts' => 'Data berikut ini diambil dari singgahan dan terakhir diperbarui pada $1. {{PLURAL:$1||}}$1 hasil maksimal tersedia di tembolok.',
 'querypage-no-updates' => 'Pemutakhiran dari halaman ini sedang dimatikan. Data yang ada di sini saat ini tidak akan dimuat ulang.',
 'wrong_wfQuery_params' => 'Parameter salah ke wfQuery()<br />Fungsi: $1<br />Permintaan: $2',
 'viewsource' => 'Lihat sumber',
@@ -716,6 +716,11 @@ $2',
 'ns-specialprotected' => 'Halaman pada ruang nama {{ns:special}} tidak dapat disunting.',
 'titleprotected' => "Judul ini dilindungi dari pembuatan oleh [[User:$1|$1]].
 Alasan yang diberikan adalah ''$2''.",
+'filereadonlyerror' => 'Tidak dapat memodifikasi file " $1 " karena file repositori " $2 " adalah pada mode baca-saja.
+
+Administrator yang terkunci menawarkan penjelasan ini: " $3 ".',
+'invalidtitle-knownnamespace' => 'Judul yang tidak sah dengan ruangnama "$2" dan teks "$3"',
+'invalidtitle-unknownnamespace' => 'Judul yang tidak sah dengan nomor ruang nama tidak diketahui $1 dan teks "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Kesalahan konfigurasi: pemindai virus tidak dikenal: ''$1''",
@@ -1078,6 +1083,7 @@ Halaman kemungkinan telah dihapus.',
 'edit-no-change' => 'Suntingan diabaikan, karena Anda tidak melakukan perubahan atas teks.',
 'edit-already-exists' => 'Tidak dapat membuat halaman baru
 karena telah ada.',
+'defaultmessagetext' => 'Teks baku',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Peringatan: Halaman ini mengandung terlalu banyak panggilan fungsi parser.
@@ -1092,6 +1098,12 @@ Beberapa templat akan diabaikan.',
 'parser-template-loop-warning' => 'Hubungan berulang templat terdeteksi: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Limit kedalaman hubungan berulang templat terlampaui ($1)',
 'language-converter-depth-warning' => 'Batas kedalaman pengonversi bahasa terlampaui ($1)',
+'node-count-exceeded-category' => 'Pages where node-count is exceeded',
+'node-count-exceeded-warning' => 'Page exceeded the node-count',
+'expansion-depth-exceeded-category' => 'Pages where expansion depth is exceeded',
+'expansion-depth-exceeded-warning' => 'Page exceeded the expansion depth',
+'parser-unstrip-loop-warning' => 'Unstrip loop detected',
+'parser-unstrip-recursion-limit' => 'Unstrip recursion limit exceeded ($1)',
 
 # "Undo" feature
 'undo-success' => 'Suntingan ini dapat dibatalkan. Tolong cek perbandingan di bawah untuk meyakinkan bahwa benar itu yang Anda ingin lakukan, lalu simpan perubahan tersebut untuk menyelesaikan pembatalan suntingan.',
@@ -1233,8 +1245,8 @@ Silakan periksa catatan log.',
 
 # Suppression log
 'suppressionlog' => 'Log penyembunyian',
-'suppressionlogtext' => 'Berikut adalah daftar penghapusan dan pemblokiran, termasuk konten yang disembunyikan dari para opsis.
-Lihat [[Special:BlockList|IP block list]] untuk daftar terkininya.',
+'suppressionlogtext' => 'Berikut adalah daftar penghapusan dan pemblokiran, termasuk konten yang disembunyikan dari para pengurus.
+Lihat [[Special:BlockList|daftar pemblokiran]] untuk daftar terkininya.',
 
 # History merging
 'mergehistory' => 'Gabung sejarah halaman',
@@ -1267,6 +1279,8 @@ Pastikan bahwa perubahan ini tetap mempertahankan kontinuitas versi terdahulu ha
 
 # Diffs
 'history-title' => 'Riwayat revisi dari "$1"',
+'difference-title' => '$1: Perbedaan revisi',
+'difference-title-multipage' => 'Perbedaan antara halaman "$1" dan "$2"',
 'difference-multipage' => '(Perbedaan antarhalaman)',
 'lineno' => 'Baris $1:',
 'compareselectedversions' => 'Bandingkan versi terpilih',
@@ -1363,6 +1377,7 @@ Perlu diingat bahwa indeks Google untuk konten {{SITENAME}} mungkin belum mencak
 'prefs-beta' => 'Fitur Beta',
 'prefs-datetime' => 'Tanggal dan waktu',
 'prefs-labs' => 'Fitur Labs',
+'prefs-user-pages' => 'Halaman pengguna',
 'prefs-personal' => 'Profil',
 'prefs-rc' => 'Perubahan terbaru',
 'prefs-watchlist' => 'Pemantauan',
@@ -1624,7 +1639,7 @@ Jika Anda memberikannya, nama asli Anda akan digunakan untuk memberi pengenalan
 'nchanges' => '$1 {{PLURAL:$1|perubahan|perubahan}}',
 'recentchanges' => 'Perubahan terbaru',
 'recentchanges-legend' => 'Opsi perubahan terbaru',
-'recentchangestext' => "Temukan perubahan terbaru dalam wiki di halaman ini. Keterangan: (beda) = perubahan, (versi) = sejarah revisi, '''B''' = halaman baru, '''k''' = suntingan kecil, '''b''' = suntingan bot, (± ''bita'') = jumlah penambahan/pengurangan isi, → = suntingan bagian, ← = ringkasan otomatis.
+'recentchanges-summary' => "Temukan perubahan terbaru dalam wiki di halaman ini. Keterangan: (beda) = perubahan, (versi) = sejarah revisi, '''B''' = halaman baru, '''k''' = suntingan kecil, '''b''' = suntingan bot, (± ''bita'') = jumlah penambahan/pengurangan isi, → = suntingan bagian, ← = ringkasan otomatis.
 ----",
 'recentchanges-feed-description' => 'Temukan perubahan terbaru dalam wiki di umpan ini.',
 'recentchanges-label-newpage' => 'Suntingan ini membuat halaman baru',
@@ -1812,13 +1827,27 @@ Silakan hubungi salah seorang [[Special:ListUsers/sysop|pengurus]].',
 'backend-fail-closetemp' => 'Tidak dapat menutup berkas sementara.',
 'backend-fail-read' => 'Tidak dapat membaca berkas $1.',
 'backend-fail-create' => 'Tidak dapat membuat berkas $1.',
-'backend-fail-maxsize' => 'Tidak dapat membuat berkas $1 karena ukurannya lebih besar dari {{PLURAL:$2|$2 bita|$2 bita}}.',
+'backend-fail-maxsize' => 'Tidak dapat membuat berkas $1 karena ukurannya lebih besar dari {{PLURAL:$2||}}$2 bita.',
+'backend-fail-readonly' => 'Backend penyimpanan "$1" ini saat ini hanya bisa dibaca. Alasan yang diberikan adalah: "\'\'$2\'\'"',
+'backend-fail-synced' => 'Berkas "$1" dalam keadaan yang tidak konsisten dalam backends penyimpanan internal',
+'backend-fail-connect' => 'Tidak dapat menyambung ke penyimpanan backend "$1".',
+'backend-fail-internal' => 'Kesalahan yang tidak dikenal terjadi di backend penyimpanan "$1".',
+'backend-fail-contenttype' => 'Tidak dapat menentukan tipe konten dari berkas yang disimpan di "$1".',
+'backend-fail-batchsize' => 'Penyimpanan backend diberikan batch $1 berkas {{PLURAL:$1||}}operasi; batasnya adalah $2 {{PLURAL:$2||}}operasi.',
+'backend-fail-usable' => 'Tidak dapat membuat berkas $1 karena izin tidak memadai atau direktori/kontainer yang hilang.',
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'Tidak dapat menyambung ke database jurnal untuk penyimpanan backend "$1".',
+'filejournal-fail-dbquery' => 'Tidak bisa update database jurnal untuk penyimpanan backend "$1".',
 
 # Lock manager
+'lockmanager-notlocked' => 'Tidak bisa membuka kunci "$1" karena "$1" tidak terkunci.',
 'lockmanager-fail-closelock' => 'Tidak dapat menutup penguncian berkas untuk "$1".',
 'lockmanager-fail-deletelock' => 'Tidak dapat menghapus penguncian berkas untuk "$1".',
 'lockmanager-fail-acquirelock' => 'Tidak dapat mendapatkan penguncian untuk "$1"',
 'lockmanager-fail-openlock' => 'Tidak dapat membuka penguncian berkas untuk "$1".',
+'lockmanager-fail-releaselock' => 'Tidak dapat melepaskan penguncian untuk "$1"',
+'lockmanager-fail-db-bucket' => 'Tidak bisa menghubungi database kunci yang mencukupi dalam ember $1.',
 'lockmanager-fail-db-release' => 'Tidak dapat melepaskan penguncian pada basis data $1.',
 'lockmanager-fail-svr-release' => 'Tidak dapat melepaskan penguncian pada server $1.',
 
@@ -1927,6 +1956,10 @@ Juga tersedia [[Special:WhatLinksHere/$2|daftar selengkapnya]].',
 Silakan lihat [$2 halaman deskripsi berkas] untuk informasi lebih lanjut.',
 'sharedupload-desc-here' => 'Berkas ini berasal dari $1 dan mungkin digunakan oleh proyek-proyek lain.
 Deskripsi dari [$2 halaman deskripsinya] ditunjukkan di bawah ini.',
+'sharedupload-desc-edit' => 'Berkas ini berasal dari $1 dan mungkin digunakan oleh proyek lain.
+Mungkin Anda ingin menyunting keterangan pada [$2 halaman deskripsi berkas] di sana.',
+'sharedupload-desc-create' => 'Berkas ini berasal dari $1 dan mungkin digunakan oleh proyek lain.
+Mungkin Anda ingin menyunting keterangan pada [$2 halaman deskripsi berkas] di sana.',
 'filepage-nofile' => 'Tidak ada berkas dengan nama ini.',
 'filepage-nofile-link' => 'Tidak ada berkas dengan nama ini, tetapi Anda dapat [$1 mengunggahnya].',
 'uploadnewversion-linktext' => 'Muatkan versi yang lebih baru dari berkas ini',
@@ -2060,6 +2093,8 @@ Nama yang telah <del>dicoret</del> berarti telah dibetulkan.',
 'wantedpages' => 'Halaman yang diinginkan',
 'wantedpages-badtitle' => 'Judul tak valid dalam himpunan hasil: $1',
 'wantedfiles' => 'Berkas yang diinginkan',
+'wantedfiletext-cat' => 'Berkas-berkas berikut digunakan tetapi tidak ada. Berkas dari repositori asing mungkin tercantum meskipun ada. Setiap "false positive" akan <del>dicoret</del>. Selain itu, halaman yang menggunakan berkas yang tidak ada eksis akan dicantumkan dalam [[:$1]].',
+'wantedfiletext-nocat' => 'Berkas-berkas berikut digunakan tetapi tidak ada. Berkas dari repositori asing mungkin tercantum meskipun ada. Setiap "false positive" akan <del>dicoret</del>.',
 'wantedtemplates' => 'Templat yang diinginkan',
 'mostlinked' => 'Halaman yang tersering dituju',
 'mostlinkedcategories' => 'Kategori yang tersering digunakan',
@@ -2136,6 +2171,12 @@ Anda dapat melakukan pembatasan tampilan dengan memilih jenis log, nama pengguna
 'allpagesprefix' => 'Tampilkan halaman dengan awalan:',
 'allpagesbadtitle' => 'Judul halaman yang diberikan tidak sah atau memiliki awalan antar-bahasa atau antar-wiki. Judul tersebut mungkin juga mengandung satu atau lebih aksara yang tidak dapat digunakan dalam judul.',
 'allpages-bad-ns' => '{{SITENAME}} tidak memiliki ruang nama "$1".',
+'allpages-hide-redirects' => 'Sembunyikan pengalihan',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Anda melihat versi tembolok halaman ini, yang mungkin sudah berumur $1.',
+'cachedspecial-viewing-cached-ts' => 'Anda melihat versi tembolok halaman ini, yang mungkin tidak akan benar-benar aktual.',
+'cachedspecial-refresh-now' => 'Lihat versi terbaru.',
 
 # Special:Categories
 'categories' => 'Kategori',
@@ -2373,6 +2414,8 @@ Lihat [[Special:ProtectedPages|daftar halaman terlindungi]] untuk daftar perlind
 'protect-title' => 'Melindungi "$1"',
 'protect-title-notallowed' => 'Lihat tingkat perlindungan dari "$1"',
 'prot_1movedto2' => '[[$1]] dipindahkan ke [[$2]]',
+'protect-badnamespace-title' => 'Ruang nama yang tidak dapat dilindungi',
+'protect-badnamespace-text' => 'Halaman dalam ruang nama ini tidak dapat dilindungi.',
 'protect-legend' => 'Konfirmasi pelindungan',
 'protectcomment' => 'Alasan:',
 'protectexpiry' => 'Kedaluwarsa:',
@@ -2566,7 +2609,7 @@ Masukkan alasan Anda di bawah (contoh, menuliskan nama halaman yang telah divand
 'badipaddress' => 'Format alamat IP atau nama pengguna salah.',
 'blockipsuccesssub' => 'Pemblokiran sukses',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] telah diblokir.<br />
-Lihat [[Special:BlockList|Daftar IP]] untuk meninjau kembali pemblokiran.',
+Lihat [[Special:BlockList|daftar pemblokiran]] untuk meninjau kembali pemblokiran.',
 'ipb-blockingself' => 'Anda akan memblokir diri sendiri! Apakah Anda yakin akan melakukannya?',
 'ipb-confirmhideuser' => 'Anda akan memblokir pengguna dengan mengaktifkan "sembunyikan pengguna" diaktifkan. Ini akan menyembunyikan nama pengguna pada semua daftar dan entri log. Apakah Anda yakin ingin melakukannya?',
 'ipb-edit-dropdown' => 'Sunting alasan pemblokiran',
@@ -2586,6 +2629,7 @@ Lihat [[Special:BlockList|Daftar IP]] untuk meninjau kembali pemblokiran.',
 'blocklist-userblocks' => 'Sembunyikan pemblokiran akun',
 'blocklist-tempblocks' => 'Sembunyikan pemblokiran sementara',
 'blocklist-addressblocks' => 'Sembunyikan pemblokiran IP tunggal',
+'blocklist-rangeblocks' => 'Menyembunyikan jangkauan blokir (http://www.mediawiki.org/wiki/Help:Range_blocks)',
 'blocklist-timestamp' => 'Stempel waktu',
 'blocklist-target' => 'Target',
 'blocklist-expiry' => 'Kedaluwarsa',
@@ -2618,7 +2662,7 @@ Alasan yang diberikan untuk pemblokiran $1 adalah: "$2"',
 'reblock-logentry' => 'mengubah pemblokiran [[$1]] dengan waktu kedaluwarsa $2 $3',
 'blocklogtext' => 'Di bawah ini adalah log pemblokiran dan pembukaan blokir terhadap pengguna.
 Alamat IP yang diblokir secara otomatis tidak terdapat di dalam daftar ini.
-Lihat [[Special:BlockList|daftar alamat IP yang diblokir]] untuk daftar pemblokiran terkini.',
+Lihat [[Special:BlockList|daftar pemblokiran]] untuk semua pengguna yang saat ini diblokir.',
 'unblocklogentry' => 'menghilangkan blokir "$1"',
 'block-log-flags-anononly' => 'hanya pengguna anonim',
 'block-log-flags-nocreate' => 'pembuatan akun dimatikan',
@@ -2767,6 +2811,7 @@ Jika Anda hanya ingin mengimpor versi terbaru, Anda melakukannya lebih cepat den
 'exportcuronly' => 'Hanya ekspor revisi sekarang, bukan seluruh versi terdahulu',
 'exportnohistory' => "----
 '''Catatan:''' Mengekspor keseluruhan riwayat suntingan halaman melalui isian ini telah dinon-aktifkan karena alasan kinerja.",
+'exportlistauthors' => 'Termasuk daftar lengkap kontributor untuk setiap halaman',
 'export-submit' => 'Ekspor',
 'export-addcattext' => 'Tambahkan halaman dari kategori:',
 'export-addcat' => 'Tambahkan',
@@ -2799,6 +2844,8 @@ Silakan kunjungi [//www.mediawiki.org/wiki/Localisation Pelokalan MediaWiki] dan
 'thumbnail_error' => 'Gagal membuat miniatur: $1',
 'djvu_page_error' => 'Halaman DjVu di luar rentang',
 'djvu_no_xml' => 'XML untuk berkas DjVu tak dapat diperoleh',
+'thumbnail-temp-create' => 'Tidak dapat membuat berkas kecil temporer',
+'thumbnail-dest-create' => 'Tidak dapat menyimpan berkas kecil ke tujuan',
 'thumbnail_invalid_params' => 'Kesalahan parameter miniatur',
 'thumbnail_dest_directory' => 'Direktori tujuan tak dapat dibuat',
 'thumbnail_image-type' => 'Tipe gambar tidak didukung',
@@ -2845,6 +2892,8 @@ Simpan ke komputer Anda dan unggah ke sini.',
 'import-invalid-interwiki' => 'Tidak dapat mengimpor dari wiki tersebut.',
 'import-error-edit' => 'Halaman "$1" tidak diimpor karena Anda tidak diizinkan untuk menyuntingnya.',
 'import-error-create' => 'Halaman "$1" tidak diimpor karena Anda tidak diizinkan untuk membuatnya.',
+'import-error-interwiki' => 'Halaman " $1 " tidak diimpor karena namanya dicadangkan untuk pranala eksternal (interwiki).',
+'import-error-special' => 'Halaman " $1 " tidak diimpor karena milik ruang nama khusus yang tidak mengizinkan adanya halaman.',
 'import-error-invalid' => 'Halaman "$1" tidak diimpor karena namanya tidak valid.',
 
 # Import log
@@ -2864,6 +2913,7 @@ Simpan ke komputer Anda dan unggah ke sini.',
 'javascripttest-pagetext-frameworks' => 'Silakan pilih satu di antara kerangka kerja pengujian berikut: $1',
 'javascripttest-pagetext-skins' => 'Pilih kulit yang ingin Anda uji:',
 'javascripttest-qunit-intro' => 'Lihat [$1 dokumentasi pengujian] di mediawiki.org.',
+'javascripttest-qunit-heading' => 'MediaWiki JavaScript QUnit test suite',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Halaman pengguna Anda',
@@ -3728,6 +3778,9 @@ Anda seharusnya telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING salinan Lisensi
 'version-software' => 'Perangkat lunak terinstal',
 'version-software-product' => 'Produk',
 'version-software-version' => 'Versi',
+'version-entrypoints' => 'URL titik entri',
+'version-entrypoints-header-entrypoint' => 'Titik entri',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Lokasi berkas',
@@ -3832,6 +3885,15 @@ Gambar ditampilkan dalam resolusi penuh dan tipe lain berkas akan dibuka langsun
 # New logging system
 'logentry-delete-delete' => '$1 menghapus halaman $3',
 'logentry-delete-restore' => '$1 mengembalikan halaman $3',
+'logentry-delete-event' => '$1 mengubah ketertampilan {{PLURAL:$5||}} $5  log peristiwa di $3: $4',
+'logentry-delete-revision' => '$1 mengubah ketertampilan {{PLURAL:$5||}} $5  revisi di halaman $3: $4',
+'logentry-delete-event-legacy' => '$1 mengubah ketertampilan log peristiwa pada $3',
+'logentry-delete-revision-legacy' => '$1 mengubah ketertampilan revisi pada halaman $3',
+'logentry-suppress-delete' => '$1 mensupresi halaman $3',
+'logentry-suppress-event' => '$1 secara diam-diam mengubah ketertampilan  {{PLURAL:$5||}} $5  log peristiwa di $3: $4',
+'logentry-suppress-revision' => '$1 diam-diam mengubah ketertampilan {{PLURAL:$5||}} $5 revisi di halaman $3: $4',
+'logentry-suppress-event-legacy' => '$1 diam-diam mengubah ketertampilan log peristiwa pada $3',
+'logentry-suppress-revision-legacy' => '$1 diam-diam mengubah ketertampilan revisi pada halaman $3',
 'revdelete-content-hid' => 'konten disembunyikan',
 'revdelete-summary-hid' => 'ringkasan suntingan disembunyikan',
 'revdelete-uname-hid' => 'nama pengguna disembunyikan',
@@ -3853,6 +3915,8 @@ Gambar ditampilkan dalam resolusi penuh dan tipe lain berkas akan dibuka langsun
 'newuserlog-byemail' => 'kata sandi dikirim melalui surel',
 
 # Feedback
+'feedback-bugornote' => 'Jika Anda sudah siap untuk mendeskripsikan masalah teknis secara rinci silakan [$1 melaporkan bug].
+Jika tidak, Anda dapat menggunakan formulir mudah di bawah ini. Komentar Anda akan ditambahkan ke halaman "[$3 $2]", bersama dengan nama pengguna Anda dan apa browser yang Anda gunakan.',
 'feedback-subject' => 'Perihal:',
 'feedback-message' => 'Pesan:',
 'feedback-cancel' => 'Batal',
@@ -3861,6 +3925,7 @@ Gambar ditampilkan dalam resolusi penuh dan tipe lain berkas akan dibuka langsun
 'feedback-error1' => 'Galat: Hasil tidak dikenal dari API',
 'feedback-error2' => 'Galat: Penyuntingan gagal',
 'feedback-error3' => 'Error: API tidak merespons',
+'feedback-thanks' => 'Terima kasih! Umpan balik Anda telah diposting ke halaman "[$2 $1]".',
 'feedback-close' => 'Selesai',
 'feedback-bugcheck' => 'Hebat! Hanya periksa bahwa itu bukan satu di antara [$1 bug yang telah dikenal].',
 'feedback-bugnew' => 'Saya telah memeriksa. Laporkan bug baru',
@@ -3903,4 +3968,15 @@ Gambar ditampilkan dalam resolusi penuh dan tipe lain berkas akan dibuka langsun
 'api-error-uploaddisabled' => 'Pengunggahan dinonaktifkan di wiki ini.',
 'api-error-verification-error' => 'Berkas ini mungkin rusak atau memiliki ekstensi yang salah.',
 
+# Durations
+'duration-seconds' => '{{PLURAL:$1||}}$1 detik',
+'duration-minutes' => '{{PLURAL:$1||}}$1 menit',
+'duration-hours' => '{{PLURAL:$1||}}$1 jam',
+'duration-days' => '{{PLURAL:$1||}}$1 hari',
+'duration-weeks' => '{{PLURAL: $1||}}$1 minggu',
+'duration-years' => '{{PLURAL: $1||}}$1 tahun',
+'duration-decades' => '{{PLURAL:$1||}}$1 dekade',
+'duration-centuries' => '{{PLURAL:$1||}}$1 abad',
+'duration-millennia' => '{{PLURAL:$1||}}$1 milenium',
+
 );
index 1a9bfc9..00322f5 100644 (file)
@@ -732,7 +732,7 @@ Tui adresse de e-mail ne es revelat quande altri usatores contacter vu.',
 'nchanges' => '$1 {{PLURAL:$1|change|changes}}',
 'recentchanges' => 'Nov changes',
 'recentchanges-legend' => 'Optiones de nov changes',
-'recentchangestext' => 'Seque sur ti-ci págine li ultim modificationes al wiki.',
+'recentchanges-summary' => 'Seque sur ti-ci págine li ultim modificationes al wiki.',
 'recentchanges-feed-description' => 'Monstra li max nov changes to li wiki in ti feed.',
 'recentchanges-label-newpage' => 'Ti redaction creat un nov págine',
 'recentchanges-label-minor' => 'Ti es un redaction minori',
index 043dfb7..288eac9 100644 (file)
  * @author לערי ריינהארט
  */
 
+$namespaceNames = array(
+       NS_MEDIA            => 'Midia',
+       NS_SPECIAL          => 'Espesial',
+       NS_TALK             => 'Tungtungan',
+       NS_USER             => 'Agar-aramat',
+       NS_USER_TALK        => 'Agar-aramat_tungtungan',
+       NS_PROJECT_TALK     => '$1_tungtungan',
+       NS_FILE             => 'Papeles',
+       NS_FILE_TALK        => 'Papeles_tungtungan',
+       NS_MEDIAWIKI        => 'MediaWiki',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki_tungtungan',
+       NS_TEMPLATE         => 'Plantilia',
+       NS_TEMPLATE_TALK    => 'Plantilia_tungtungan',
+       NS_HELP             => 'Tulong',
+       NS_HELP_TALK        => 'Tulong_tungtungan',
+       NS_CATEGORY         => 'Kategoria',
+       NS_CATEGORY_TALK    => 'Kategoria_tungtungan',
+);
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Pinag-ugisan ti silpo:',
@@ -1353,7 +1372,7 @@ Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak
 'nchanges' => '$1 {{PLURAL:$1|sinukatan|dagiti sinukatan}}',
 'recentchanges' => 'Kaudian a balbaliw',
 'recentchanges-legend' => 'Pagpilian kadagiti kaudian a balbaliw',
-'recentchangestext' => 'Bantayan daytoy a panid dagiti kaudian a panakabalbaliw ti wiki.',
+'recentchanges-summary' => 'Bantayan iti daytoy a panid dagiti kauudian a panakabalbaliw ti wiki.',
 'recentchanges-feed-description' => 'Siputen dagiti kakaudian a panamalbaliw iti wiki iti daytoy a pakan.',
 'recentchanges-label-newpage' => 'Daytoy nga inurnos ket nakaaramid ti baro a panid',
 'recentchanges-label-minor' => 'Bassit a panag-urnos laeng daytoy',
index 3dd161b..9720672 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Amire80
+ * @author Reedy
  * @author Sapral Mikail
  * @author Tagir
  */
@@ -625,7 +626,7 @@ $messages = array(
 'nchanges' => '$1 {{PLURAL:$1|хувцам|хувцамаш}}',
 'recentchanges' => 'Керда хувцамаш',
 'recentchanges-legend' => 'Керда хувцамий оттамаш',
-'recentchangestext' => 'КIалхагIа лоарамий доаламе тIехьара оагIувний хувцамаш дIаязадаь да{{grammar:genitive|{{SITENAME}}}}.',
+'recentchanges-summary' => 'КIалхагIа лоарамий доаламе тIехьара оагIувний хувцамаш дIаязадаь да{{grammar:genitive|{{SITENAME}}}}.',
 'recentchanges-feed-description' => 'Укх ларамца тIехьара викихувцамашт теркам бе.',
 'recentchanges-label-newpage' => 'Укх хувцамаца керда оагIув даь хиннад',
 'recentchanges-label-minor' => 'ЗIамига хувцам я',
@@ -1134,7 +1135,7 @@ $messages = array(
 #Укх # тамагIалгаца дIадувлаш дола мугIанаш, оалам мо лоархаш да.
 #МугIанаш яздaтакха каьда да
 
-#Каст-каста оаламаш укх мугIа лакхе дIаязаде. Из мугI ший долаш тайпара дита<pre>',
+#Каст-каста оаламаш укх мугIа лакхе дIаязаде. Из мугI ший долаш тайпара дита</pre>',
 
 # Special:Tags
 'tag-filter' => '[[Special:Tags|Йоазоний]] цIенаярг:',
index 43c2f50..89752bb 100644 (file)
@@ -811,7 +811,7 @@ Ol mustas ne havar plu kam $1 {{PLURAL:$1|litero|literi}}.',
 'nchanges' => '$1 {{PLURAL:$1|chanjo|chanji}}',
 'recentchanges' => 'Recenta chanji',
 'recentchanges-legend' => 'Recenta chanji preferaji',
-'recentchangestext' => 'Regardez la maxim recenta chanji en Wiki per ica pagino.',
+'recentchanges-summary' => 'Regardez la maxim recenta chanji en Wiki per ica pagino.',
 'recentchanges-label-newpage' => 'Ca redaktajo kreis nova pagino',
 'recentchanges-label-minor' => 'Ica es mikra redaktajo',
 'recentchanges-label-bot' => 'Ta chanjo facita da bot',
index bcaab65..5add4fb 100644 (file)
@@ -616,7 +616,7 @@ $2',
 Ástæðan sem gefin var ''$2''.",
 'filereadonlyerror' => 'Ekki var hægt að breyta skránni "$1" því skráin í skráarsafninu "$2" er engöngu hægt að lesa.
 
-Ástæðan fyrir þessu er "\'\'$3\'\'".',
+Möppudýrið sem læsti skránni gaf þessa ástæðu: "\'\'$3\'\'".',
 
 # Virus scanner
 'virus-badscanner' => "Slæm stilling: óþekktur veiruskannari: ''$1''",
@@ -1083,6 +1083,13 @@ Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGE
 'revdelete-show-file-submit' => 'Já',
 'revdelete-selected' => "'''{{PLURAL:$2|Valin breyting|Valdar breytingar}} fyrir [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Valin aðgerð|Valdar aðgerðir}}:'''",
+'revdelete-text' => "'''Eyddar útgáfur og breytingar munu birtast áfram í breytingarskrá síðunnar og í aðgerðarskrám, en hluti upplýsingana verða falin almenningi.'''
+Önnur möppudýr á {{SITENAME}} hafa aðgang að földu upplýsingunum og geta endurvakið upplýsingarnar í gegnum sama viðmót, nema sérstakar takmarkanir séu virkar.",
+'revdelete-confirm' => 'Vinsamlegast staðfestu að þú viljir gera þetta, að þú skiljir afleiðingarnar og að þú sért að gera þetta í samræmi við  [[{{MediaWiki:Policy-url}}]].',
+'revdelete-suppress-text' => "Bælingu á '''eingöngu''' að nota í eftirfarandi tilfellum:
+* Mögulegar ærumleiðandi upplýsingar
+* Óviðeigandi persónulegar upplýsingar
+*: ''heimilisfang, símanúmer, kennitala, osfrv.''",
 'revdelete-legend' => 'Setja sjáanlegar hamlanir',
 'revdelete-hide-text' => 'Fela breytingatexta',
 'revdelete-hide-image' => 'Fela efni skráar',
@@ -1094,6 +1101,7 @@ Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGE
 'revdelete-radio-set' => 'Já',
 'revdelete-radio-unset' => 'Nei',
 'revdelete-suppress' => 'Dylja gögn frá stjórnendum og öðrum',
+'revdelete-unsuppress' => 'Fjarlægja takmarkanir á endurvöktum breytingum',
 'revdelete-log' => 'Ástæða:',
 'revdelete-submit' => 'Setja á {{PLURAL:$1|valda breytingu|valdar breytingar}}',
 'revdel-restore' => 'Breyta sýn',
@@ -1101,8 +1109,23 @@ Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGE
 'revdel-restore-visible' => 'sýnilegar breytingar',
 'pagehist' => 'Breytingaskrá',
 'deletedhist' => 'Eyðingaskrá',
+'revdelete-hide-current' => 'Mistókst að fela breytingu frá $1 $2: Þetta er núverandi útgáfa síðunnar.
+Ekki er hægt að fela hana.',
+'revdelete-show-no-access' => 'Mistókst að sýna breytingu frá $1 $2: Þessi breyting hefur verið merkt sem "takmörkuð".
+Þú hefur ekki aðgang að henni.',
+'revdelete-no-change' => "'''Viðvörun:''' Breytingin frá $1 $2 hefur þegar umbeðnar sýnileika stillingar.",
+'revdelete-only-restricted' => 'Mistókst að fela breytingu frá $1 $2: Þú getur ekki falið breytingu fyrir möppudýrum án þess að velja eina af hinum sýnileika stillingunum.',
+'revdelete-reason-dropdown' => '*Algengar eyðingarástæður
+** Höfundarréttarbrot
+** Óviðeigandi persónuuplýsingar
+** Mögulega ærumleiðandi upplýsingar',
+'revdelete-otherreason' => 'Aðrar/fleiri ástæður:',
+'revdelete-reasonotherlist' => 'Önnur ástæða',
 'revdelete-edit-reasonlist' => 'Eyðingarástæður',
 
+# Suppression log
+'suppressionlog' => 'Bælingarskrá',
+
 # History merging
 'mergehistory' => 'Sameina breytingaskrár',
 'mergehistory-header' => 'Þessi síða gerir þér kleift að sameina breytingarskrá tveggja síðna.
@@ -1120,7 +1143,9 @@ Sjáðu til þess að þessi breyting sameini breytingarskrárnar samfellt.',
 'mergelogpagetext' => 'Þetta er skrá yfir síðustu sameiningar einnar síðu við aðra.',
 
 # Diffs
-'history-title' => 'Breytingaskrá fyrir "$1"',
+'history-title' => '$1: Breytingaskrá',
+'difference-title' => '$1: Munur á milli útgáfa',
+'difference-title-multipage' => '$1 og $2: Munur á milli síðna',
 'difference-multipage' => '(Munur á milli síðna)',
 'lineno' => 'Lína $1:',
 'compareselectedversions' => 'Bera saman valdar útgáfur',
@@ -1240,7 +1265,7 @@ Athugaðu að skrár þeirra yfir {{SITENAME}}-efni kunna að vera úreltar.',
 'columns' => 'Dálkar',
 'searchresultshead' => 'Leit',
 'resultsperpage' => 'Niðurstöður á síðu',
-'stub-threshold' => 'Þröskuldur fyrir sniði <a href="#" class="stub">stubbatengla</a> (bæt):',
+'stub-threshold' => 'Þröskuldur fyrir <a href="#" class="stub">stubbatengla</a> (bæt):',
 'stub-threshold-disabled' => 'Óvirkt',
 'recentchangesdays' => 'Fjöldi daga sem nýlegar breytingar ná yfir:',
 'recentchangesdays-max' => '(hámark $1 {{PLURAL:$1|dag|daga}})',
@@ -1479,7 +1504,7 @@ Tölvupóstfang þitt er ekki gefið upp þegar aðrir notendur hafa samband vi
 'nchanges' => '$1 {{PLURAL:$1|breyting|breytingar}}',
 'recentchanges' => 'Nýlegar breytingar',
 'recentchanges-legend' => 'Stillingar nýlegra breytinga',
-'recentchangestext' => 'Hér geturðu fylgst með nýjustu breytingunum.',
+'recentchanges-summary' => 'Hér geturðu fylgst með nýjustu breytingunum.',
 'recentchanges-feed-description' => 'Hér er hægt að fylgjast með nýlegum breytingum á {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Þessi breyting skapaði nýja síðu',
 'recentchanges-label-minor' => 'Þetta er minniháttar breyting',
@@ -3650,4 +3675,14 @@ Ef ekki, þá getur þú notað einfalt eyðublað hér fyrir neðan. Athugasemd
 'api-error-uploaddisabled' => 'Ekki er leyft að hlaða inn á þessum wiki.',
 'api-error-verification-error' => 'Þessi skrá gæti verið skemmd, eða með vitlausa skráarendingu.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|sekúnda|sekúndur}}',
+'duration-minutes' => '$1 {{PLURAL:$1|mínúta|mínútur}}',
+'duration-hours' => '$1 {{PLURAL:$1|klukkustund|klukkustundir}}',
+'duration-days' => '$1 {{PLURAL:$1|dagur|dagar}}',
+'duration-weeks' => '$1 {{PLURAL:$1|vika|vikur}}',
+'duration-years' => '$1 {{PLURAL:$1|ár|ár}}',
+'duration-decades' => '$1 {{PLURAL:$1|áratugur|áratugir}}',
+'duration-centuries' => '$1 {{PLURAL:$1|öld|aldir}}',
+
 );
index f111eb1..89bd96c 100644 (file)
@@ -116,14 +116,15 @@ $specialPageAliases = array(
        'Booksources'               => array( 'RicercaISBN' ),
        'BrokenRedirects'           => array( 'RedirectErrati' ),
        'Categories'                => array( 'Categorie' ),
+       'ChangeEmail'               => array( 'CambiaEmail' ),
        'ChangePassword'            => array( 'CambiaPassword' ),
        'ComparePages'              => array( 'ComparaPagine' ),
        'Confirmemail'              => array( 'ConfermaEMail' ),
-       'Contributions'             => array( 'Contributi', 'ContributiUtente' ),
+       'Contributions'             => array( 'Contributi', 'ContributiUtente', 'Edit' ),
        'CreateAccount'             => array( 'CreaAccount' ),
        'Deadendpages'              => array( 'PagineSenzaUscita' ),
        'DeletedContributions'      => array( 'ContributiCancellati' ),
-       'Disambiguations'           => array( 'Disambigua', 'Disambigue' ),
+       'Disambiguations'           => array( 'Disambigua' ),
        'DoubleRedirects'           => array( 'RedirectDoppi' ),
        'EditWatchlist'             => array( 'ModifcaListaSeguiti' ),
        'Emailuser'                 => array( 'InviaEMail' ),
@@ -134,11 +135,11 @@ $specialPageAliases = array(
        'Import'                    => array( 'Importa' ),
        'Invalidateemail'           => array( 'InvalidaEMail' ),
        'BlockList'                 => array( 'IPBloccati', 'ElencoBlocchi', 'Blocchi' ),
-       'LinkSearch'                => array( 'CercaCollegamenti' ),
-       'Listadmins'                => array( 'Amministratori', 'ElencoAmministratori', 'Admin' ),
+       'LinkSearch'                => array( 'CercaCollegamenti', 'CercaLink' ),
+       'Listadmins'                => array( 'Amministratori', 'ElencoAmministratori', 'Admin', 'Sysop', 'Cricca' ),
        'Listbots'                  => array( 'Bot', 'ElencoBot' ),
        'Listfiles'                 => array( 'File', 'Immagini' ),
-       'Listgrouprights'           => array( 'ElencoPermessiGruppi' ),
+       'Listgrouprights'           => array( 'ElencoPermessiGruppi', 'Privilegi' ),
        'Listredirects'             => array( 'Redirect', 'ElencoRedirect' ),
        'Listusers'                 => array( 'Utenti', 'ElencoUtenti' ),
        'Lockdb'                    => array( 'BloccaDB' ),
@@ -157,10 +158,11 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'MieiContributi' ),
        'Mypage'                    => array( 'MiaPaginaUtente', 'MiaPagina' ),
        'Mytalk'                    => array( 'MieDiscussioni' ),
-       'Myuploads'                 => array( 'MieiUpload' ),
+       'Myuploads'                 => array( 'MieiUpload', 'MieiEdit' ),
        'Newimages'                 => array( 'ImmaginiRecenti' ),
        'Newpages'                  => array( 'PaginePiùRecenti' ),
        'PasswordReset'             => array( 'ReimpostaPassword' ),
+       'PermanentLink'             => array( 'LinkPermanente' ),
        'Popularpages'              => array( 'PaginePiùVisitate' ),
        'Preferences'               => array( 'Preferenze' ),
        'Prefixindex'               => array( 'Prefissi' ),
@@ -171,11 +173,11 @@ $specialPageAliases = array(
        'Recentchanges'             => array( 'UltimeModifiche' ),
        'Recentchangeslinked'       => array( 'ModificheCorrelate' ),
        'Revisiondelete'            => array( 'CancellaRevisione' ),
-       'Search'                    => array( 'Ricerca', 'Cerca' ),
+       'Search'                    => array( 'Ricerca', 'Cerca', 'Trova' ),
        'Shortpages'                => array( 'PaginePiùCorte' ),
        'Specialpages'              => array( 'PagineSpeciali' ),
        'Statistics'                => array( 'Statistiche' ),
-       'Tags'                      => array( 'Etichette' ),
+       'Tags'                      => array( 'Etichette', 'Tag' ),
        'Unblock'                   => array( 'ElencoSblocchi', 'Sblocchi' ),
        'Uncategorizedcategories'   => array( 'CategorieSenzaCategorie' ),
        'Uncategorizedimages'       => array( 'ImmaginiSenzaCategorie' ),
@@ -293,7 +295,7 @@ $messages = array(
 'tog-externaleditor' => "Usa per default un editor di testi esterno (solo per utenti esperti, richiede l'uso di impostazioni particolari sul proprio computer. [//www.mediawiki.org/wiki/Manual:External_editors Ulteriori informazioni.])",
 'tog-externaldiff' => "Usa per default un programma di diff esterno (solo per utenti esperti, richiede l'uso di impostazioni particolari sul proprio computer. [//www.mediawiki.org/wiki/Manual:External_editors Ulteriori informazioni.])",
 'tog-showjumplinks' => 'Attiva i collegamenti accessibili "vai a"',
-'tog-uselivepreview' => "Attiva la funzione ''Live preview'' (anteprima in diretta - richiede JavaScript; sperimentale)",
+'tog-uselivepreview' => "Abilita la funzione ''Live preview'' (anteprima in diretta - richiede JavaScript; sperimentale)",
 'tog-forceeditsummary' => 'Chiedi conferma se il campo oggetto è vuoto',
 'tog-watchlisthideown' => 'Nascondi le mie modifiche negli osservati speciali',
 'tog-watchlisthidebots' => 'Nascondi le modifiche dei bot negli osservati speciali',
@@ -478,7 +480,7 @@ $messages = array(
 'otherlanguages' => 'Altre lingue',
 'redirectedfrom' => '(Reindirizzamento da <b>$1</b>)',
 'redirectpagesub' => 'Pagina di reindirizzamento',
-'lastmodifiedat' => 'Ultima modifica per la pagina: $2, $1.',
+'lastmodifiedat' => "Questa pagina è stata modificata per l'ultima volta il $1 alle $2.",
 'viewcount' => 'Questa pagina è stata letta {{PLURAL:$1|una volta|$1 volte}}.',
 'protectedpage' => 'Pagina bloccata',
 'jumpto' => 'Vai a:',
@@ -927,7 +929,7 @@ Le tue modifiche NON sono ancora state salvate!",
 'previewconflict' => 'L\'anteprima corrisponde al testo presente nella casella di modifica superiore e rappresenta la pagina come apparirà se si sceglie di premere "Salva la pagina" in questo momento.',
 'session_fail_preview' => "'''Non è stato possibile elaborare la modifica perché sono andati persi i dati relativi alla sessione.
 Riprovare.
-Se il problema persiste, si può provare a [[Special:UserLogout|scollegarsi]] ed effettuare un nuovo accesso.'''",
+Se il problema persiste, si può tentare di [[Special:UserLogout|scollegarsi]] ed effettuare un nuovo accesso.'''",
 'session_fail_preview_html' => "'''Non è stato possibile elaborare la modifica perché sono andati persi i dati relativi alla sessione.'''
 
 ''Poiché in {{SITENAME}} è abilitato l'uso di HTML senza limitazioni, l'anteprima non viene visualizzata; si tratta di una misura di sicurezza contro gli attacchi JavaScript.''
@@ -1190,9 +1192,9 @@ Vedi l'[[Special:BlockList|elenco dei blocchi]] per l'elenco dei bandi e dei blo
 'mergelogpagetext' => 'Di seguito sono elencate le ultime operazioni di unione della cronologia di due pagine.',
 
 # Diffs
-'history-title' => 'Cronologia delle modifiche di "$1"',
-'difference-title' => 'Differenza tra le versioni di "$1"',
-'difference-title-multipage' => 'Differenza tra le pagine "$1" e "$2"',
+'history-title' => '$1: cronologia delle modifiche',
+'difference-title' => '$1: differenze tra le versioni',
+'difference-title-multipage' => '$1 e $2: differenze tra le pagine',
 'difference-multipage' => '(Differenze fra le pagine)',
 'lineno' => 'Riga $1:',
 'compareselectedversions' => 'Confronta le versioni selezionate',
@@ -1287,6 +1289,7 @@ Vedi l'[[Special:BlockList|elenco dei blocchi]] per l'elenco dei bandi e dei blo
 'prefs-beta' => 'Funzionalità beta',
 'prefs-datetime' => 'Data e ora',
 'prefs-labs' => 'Funzionalità dei laboratori',
+'prefs-user-pages' => 'Pagine utente',
 'prefs-personal' => 'Profilo utente',
 'prefs-rc' => 'Ultime modifiche',
 'prefs-watchlist' => 'Osservati speciali',
@@ -1481,7 +1484,7 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'right-editusercssjs' => 'Modifica i file CSS e JS di altri utenti',
 'right-editusercss' => 'Modifica i file CSS di altri utenti',
 'right-edituserjs' => 'Modifica i file JS di altri utenti',
-'right-rollback' => "Annullamento rapido delle modifiche dell'ultimo utente che ha modificato una particolare pagina",
+'right-rollback' => "Annulla rapidamente le modifiche dell'ultimo utente che ha modificato una particolare pagina",
 'right-markbotedits' => 'Segna le modifiche soggette a rollback come effettuate da bot',
 'right-noratelimit' => 'Non soggetto al limite di azioni',
 'right-import' => 'Importa pagine da altri wiki',
@@ -1530,7 +1533,7 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'action-suppressionlog' => 'visionare questo log privato',
 'action-block' => 'bloccare questo utente in scrittura',
 'action-protect' => 'modificare i livelli di protezione per questa pagina',
-'action-rollback' => "Annullamento rapido delle modifiche dell'ultimo utente che ha modificato una determinata pagina",
+'action-rollback' => "annullare rapidamente le modifiche dell'ultimo utente che ha modificato una determinata pagina",
 'action-import' => "importare questa pagina da un'altra wiki",
 'action-importupload' => 'importare questa pagina tramite upload da file',
 'action-patrol' => 'segnare le modifiche degli altri utenti come verificate',
@@ -1546,7 +1549,7 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'nchanges' => '$1 {{PLURAL:$1|modifica|modifiche}}',
 'recentchanges' => 'Ultime modifiche',
 'recentchanges-legend' => 'Opzioni ultime modifiche',
-'recentchangestext' => 'Questa pagina presenta le modifiche più recenti ai contenuti del sito.',
+'recentchanges-summary' => 'Questa pagina presenta le modifiche più recenti ai contenuti del sito.',
 'recentchanges-feed-description' => 'Questo feed riporta le modifiche più recenti ai contenuti del sito.',
 'recentchanges-label-newpage' => 'Questa modifica ha creato una nuova pagina',
 'recentchanges-label-minor' => 'Questa è una modifica minore',
@@ -1731,7 +1734,7 @@ $1',
 'backend-fail-hashes' => 'Impossibile ottenere hash dei file per confronto.',
 'backend-fail-notsame' => 'Esiste già un file non identico a  $1 .',
 'backend-fail-invalidpath' => '$1 non è un percorso di archiviazione valido.',
-'backend-fail-delete' => 'Impossibile eliminare il file  $1 .',
+'backend-fail-delete' => 'Impossibile cancellare il file $1.',
 'backend-fail-alreadyexists' => 'Il file $1 esiste già.',
 'backend-fail-store' => 'Impossibilie memorizzare file  $1  in  $2 .',
 'backend-fail-copy' => 'Impossibile copiare il file  $1  in  $2 .',
@@ -1740,7 +1743,7 @@ $1',
 'backend-fail-writetemp' => 'Impossibile creare il file temporaneo.',
 'backend-fail-closetemp' => 'Impossibile chiudere il file temporaneo.',
 'backend-fail-read' => 'Impossibile leggere il file  $1 .',
-'backend-fail-create' => 'Impossibile creare il file  $1 .',
+'backend-fail-create' => 'Impossibile creare il file $1.',
 'backend-fail-maxsize' => 'Impossibile creare il file $1 perché è più grande di {{PLURAL:$2|un|$2}} byte.',
 'backend-fail-readonly' => 'Il backend "$1" è attualmente di sola lettura. La ragione indicata è: "$2"',
 'backend-fail-synced' => 'Il file "$1" è in uno stato non coerente nei backend di memoria interna.',
@@ -1748,6 +1751,7 @@ $1',
 'backend-fail-internal' => 'Si è verificato un errore sconosciuto nel backend di memoria "$1".',
 'backend-fail-contenttype' => 'Impossibile determinare la tipologia del file da archiviare in "$1".',
 'backend-fail-batchsize' => 'Il backend di memoria ha programmato una serie di $1 {{PLURAL:$1|operazione|operazioni}} su file; il limite è di $2 {{PLURAL:$2|operazione|operazioni}}.',
+'backend-fail-usable' => 'Impossibile scrivere il file $1 a causa di autorizzazione insufficienti o directory/recipienti mancanti.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Impossibile connettersi al database journal per l\'archiviazione back-end "$1".',
@@ -1810,7 +1814,6 @@ Per una sicurezza ottimale, img_auth.php è disattivato.',
 'http-curl-error' => "Errore durante il recupero dell'URL: $1",
 'http-host-unreachable' => 'URL non raggiungibile.',
 'http-bad-status' => "C'è stato un problema durante la richiesta HTTP: $1 $2",
-'http-truncated-body' => 'Il corpo della richiesta è stato ricevuto solo parzialmente.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'URL non raggiungibile',
@@ -2563,7 +2566,7 @@ Sei sicuro di voler continuare?',
 'unblocklink' => 'sblocca',
 'change-blocklink' => 'cambia blocco',
 'contribslink' => 'contributi',
-'emaillink' => 'invia e-mail',
+'emaillink' => 'invia email',
 'autoblocker' => 'Bloccato automaticamente perché l\'indirizzo IP è condiviso con l\'utente "[[User:$1|$1]]".
 Il blocco dell\'utente $1 è stato imposto per il seguente motivo: "$2".',
 'blocklogpage' => 'Blocchi',
@@ -2932,7 +2935,7 @@ Tutte le operazioni di importazione trans-wiki sono registrate nel [[Special:Log
 'anonymous' => '{{PLURAL:$1|Utente anonimo|Utenti anonimi}} di {{SITENAME}}',
 'siteuser' => '$1, utente di {{SITENAME}}',
 'anonuser' => '$1, utente anonimo di {{SITENAME}}',
-'lastmodifiedatby' => "Questa pagina è stata modificata per l'ultima volta il $2, $1 da $3.",
+'lastmodifiedatby' => "Questa pagina è stata modificata per l'ultima volta il $1 alle $2 da $3.",
 'othercontribs' => 'Il testo attuale è basato su contributi di $1.',
 'others' => 'altri',
 'siteusers' => '$1, {{PLURAL:$2|utente|utenti}} di {{SITENAME}}',
index f56253c..37adf75 100644 (file)
@@ -167,7 +167,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( '新着ファイル', '新しいファイルの一覧', '新着画像展示室' ),
        'Newpages'                  => array( '新しいページ', '新規項目' ),
        'PasswordReset'             => array( 'パスワード再設定', 'パスワードの再設定', 'パスワードのリセット', 'パスワードリセット' ),
-       'PermanentLink'             => array( '固定リンク' ),
+       'PermanentLink'             => array( '固定リンク', 'パーマリンク' ),
        'Popularpages'              => array( '人気ページ' ),
        'Preferences'               => array( '個人設定', 'オプション' ),
        'Prefixindex'               => array( '前方一致ページ一覧', '始点指定ページ一覧' ),
@@ -189,7 +189,7 @@ $specialPageAliases = array(
        'Uncategorizedimages'       => array( 'カテゴリ未導入のファイル' ),
        'Uncategorizedpages'        => array( 'カテゴリ未導入のページ' ),
        'Uncategorizedtemplates'    => array( 'カテゴリ未導入のテンプレート' ),
-       'Undelete'                  => array( '復帰' ),
+       'Undelete'                  => array( '復å\85\83', '復帰' ),
        'Unlockdb'                  => array( 'データベースロック解除', 'データベース解除' ),
        'Unusedcategories'          => array( '使われていないカテゴリ', '未使用カテゴリ' ),
        'Unusedimages'              => array( '使われていないファイル', '未使用ファイル', '未使用画像' ),
@@ -580,7 +580,7 @@ $messages = array(
 'otherlanguages' => '他の言語',
 'redirectedfrom' => '($1から転送)',
 'redirectpagesub' => 'リダイレクトページ',
-'lastmodifiedat' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®æ\9c\80çµ\82æ\9b´æ\96°ã\81¯ $1 $2 ã\81«è¡\8cã\82\8fã\82\8cã\81¾ã\81\97ã\81\9f。',
+'lastmodifiedat' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81\8cæ\9c\80å¾\8cã\81«æ\9b´æ\96°ã\81\95ã\82\8cã\81\9fã\81®ã\81¯ $1 $2 ã\81§ã\81\99。',
 'viewcount' => 'このページは {{PLURAL:$1|$1 回}}アクセスされました。',
 'protectedpage' => '保護されたページ',
 'jumpto' => '移動:',
@@ -696,9 +696,9 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'readonlytext' => 'データベースは現在、新しいページの追加や編集を受け付けない「ロック状態」になっています。これはおそらくデータベースの定期メンテナンスのためで、メンテナンス終了後は正常な状態に復帰します。
 
 データベースをロックした管理者による説明は以下の通りです:$1',
-'missing-article' => 'ページ「$1」$2の本文がデータベース内で見つかりませんでした。
+'missing-article' => '求められたページ「$1」$2 の本文がデータベース内で見つかりませんでした。
 
-ページの削除された版への古い差分表示や固定リンクをたどった時にこのようなことになります。
+通常、削除されたページの版への古い差分表示や固定リンクをたどった時に、このようなことが起こります。
 
 それ以外の操作でこのメッセージが表示された場合、ソフトウェアのバグである可能性があります。
 [[Special:ListUsers/sysop|管理者]]までそのURLを添えてお知らせください。',
@@ -1124,7 +1124,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'templatesusedsection' => 'この節で使用されている{{PLURAL:$1|テンプレート}}:',
 'template-protected' => '(保護)',
 'template-semiprotected' => '(半保護)',
-'hiddencategories' => 'このページは$1隠しカテゴリに属しています:',
+'hiddencategories' => 'このページは$1個の隠しカテゴリに属しています:',
 'edittools' => '<!-- ここに書いたテキストは編集及びアップロードのフォームの下に表示されます。 -->',
 'nocreatetitle' => 'ページの作成が制限されています',
 'nocreatetext' => '{{SITENAME}}ではページの新規作成を制限しています。
@@ -1160,8 +1160,8 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'post-expand-template-inclusion-warning' => "'''警告:'''テンプレートの読み込みサイズが大き過ぎます。
 いくつかのテンプレートは読み込まれません。",
 'post-expand-template-inclusion-category' => 'テンプレート読み込みサイズが制限値を越えているページ',
-'post-expand-template-argument-warning' => "'''è­¦å\91\8aï¼\9a'''ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\81¯ã\80\81å±\95é\96\8bå¾\8cã\81®ã\82µã\82¤ã\82ºã\81\8c大ã\81\8dã\81\99ã\81\8eã\82\8bå\80¤を渡したテンプレートが1つ以上含まれています。
\81\93ã\82\8cã\82\89ã\81®å\80¤は省略されました。",
+'post-expand-template-argument-warning' => "'''è­¦å\91\8aï¼\9a'''ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\81¯ã\80\81å±\95é\96\8bå¾\8cã\81®ã\82µã\82¤ã\82ºã\81\8c大ã\81\8dã\81\99ã\81\8eã\82\8bå¼\95æ\95°を渡したテンプレートが1つ以上含まれています。
\81\93ã\82\8cã\82\89ã\81®å¼\95æ\95°は省略されました。",
 'post-expand-template-argument-category' => '省略されたテンプレート引数を含むページ',
 'parser-template-loop-warning' => 'テンプレートのループが検出されました:[[$1]]',
 'parser-template-recursion-depth-warning' => 'テンプレートの再帰の深さ($1)が上限を超えました',
@@ -1170,6 +1170,8 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'node-count-exceeded-warning' => 'ページがノード数の制限を超えました',
 'expansion-depth-exceeded-category' => '展開の深さ制限を超えたページ',
 'expansion-depth-exceeded-warning' => 'ページが展開の深さ制限を超えました',
+'parser-unstrip-loop-warning' => 'Unstrip のループが検出されました',
+'parser-unstrip-recursion-limit' => 'Unstrip の再帰($1)が上限を超えました',
 
 # "Undo" feature
 'undo-success' => 'この編集を取り消せます。
@@ -1349,6 +1351,8 @@ $1",
 
 # Diffs
 'history-title' => '「$1」の変更履歴',
+'difference-title' => '$1:版間の差分',
+'difference-title-multipage' => '$1 と $2:ページ間の差分',
 'difference-multipage' => '(ページ間の差分)',
 'lineno' => '$1行:',
 'compareselectedversions' => '選択した版同士を比較',
@@ -1710,7 +1714,7 @@ HTMLタグを見直してください。',
 'nchanges' => '$1回の変更',
 'recentchanges' => '最近の更新',
 'recentchanges-legend' => '最近の更新のオプション',
-'recentchangestext' => 'このウィキにおける最近の更新はこのページから確認できます。',
+'recentchanges-summary' => 'このページで最近の更新を確認できます。',
 'recentchanges-feed-description' => 'このフィードでそのウィキへの最近の更新を追跡。',
 'recentchanges-label-newpage' => 'この編集で新しいページが作成されました',
 'recentchanges-label-minor' => 'これは細部の編集です',
@@ -1725,7 +1729,7 @@ HTMLタグを見直してください。',
 'rcshowhideanons' => '匿名利用者を$1',
 'rcshowhidepatr' => '巡回された編集を$1',
 'rcshowhidemine' => '自分の編集を$1',
-'rclinks' => '最近$2日間の$1件分を表示<br />$3',
+'rclinks' => '最近$2日間の更新$1件以内を表示<br />$3',
 'diff' => '差分',
 'hist' => '履歴',
 'hide' => '非表示',
@@ -1928,8 +1932,8 @@ $1',
 'backend-fail-writetemp' => '一時ファイルに書き込めませんでした。',
 'backend-fail-closetemp' => '一時ファイルを閉じることができませんでした。',
 'backend-fail-read' => 'ファイル $1 を読み込めませんでした。',
-'backend-fail-create' => 'ã\83\95ã\82¡ã\82¤ã\83« $1 ã\82\92ä½\9cæ\88\90ã\81§ã\81\8dませんでした。',
-'backend-fail-maxsize' => '{{PLURAL:$2|$2 ã\83\90ã\82¤ã\83\88}}ã\82\88ã\82\8aã\82\82大ã\81\8dã\81\84ã\81\9fã\82\81ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\82\92ä½\9cæ\88\90ã\81§ã\81\8dませんでした。',
+'backend-fail-create' => 'ã\83\95ã\82¡ã\82¤ã\83« $1 ã\81«æ\9b¸ã\81\8dè¾¼ã\82\81ませんでした。',
+'backend-fail-maxsize' => '{{PLURAL:$2|$2 ã\83\90ã\82¤ã\83\88}}ã\82\88ã\82\8aã\82\82大ã\81\8dã\81\84ã\81\9fã\82\81ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\81«æ\9b¸ã\81\8dè¾¼ã\82\81ませんでした。',
 'backend-fail-readonly' => 'ストレージバックエンド「$1」は現在読み取り専用です。理由:「$2」',
 'backend-fail-synced' => 'ファイル「$1」は、ストレージバックエンド内部において不一致の状態にあります。',
 'backend-fail-connect' => 'ストレージバックエンドに接続できませんでした。「$1」',
@@ -2509,7 +2513,7 @@ $UNWATCHURL
 'revertpage' => '[[Special:Contributions/$2|$2]]([[User talk:$2|トーク]])による編集を[[User:$1|$1]]による直前の版へ差し戻しました',
 'revertpage-nouser' => '(利用者名削除)による編集を[[User:$1|$1]]による最新版へ差し戻しました',
 'rollback-success' => '$1による編集を差し戻しました。
-$2による最後の版へ変更されました。',
+$2による直前の版へ変更されました。',
 
 # Edit tokens
 'sessionfailure-title' => 'セッションの失敗',
@@ -3119,7 +3123,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'tooltip-preview' => '変更をプレビューで確認できます。保存前に使用してください!',
 'tooltip-diff' => '文章中で変更した箇所を表示',
 'tooltip-compareselectedversions' => '選択された二つの版の差分を表示します。',
-'tooltip-watch' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\82\92ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81¸è¿½å\8a ã\81\97ã\81¾ã\81\99',
+'tooltip-watch' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\82\92ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81«è¿½å\8a ã\81\99ã\82\8b',
 'tooltip-watchlistedit-normal-submit' => 'タイトルを削除',
 'tooltip-watchlistedit-raw-submit' => 'ウォッチリストを更新',
 'tooltip-recreate' => '削除されていても、ページを再作成する',
@@ -3931,7 +3935,7 @@ $5
 'watchlistedit-raw-removed' => '$1件のページ名が除去されました:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'é\96¢é\80£ã\81\99ã\82\8bå¤\89æ\9b´ã\81®è¡¨ç¤º',
+'watchlisttools-view' => 'é\96¢é\80£ã\81\99ã\82\8bå¤\89æ\9b´ã\82\92é\96²è¦§',
 'watchlisttools-edit' => 'ウォッチリストの閲覧と編集',
 'watchlisttools-raw' => 'ウォッチリストをそのまま編集',
 
index b5fbceb..84be2d1 100644 (file)
@@ -1201,7 +1201,7 @@ Panjenengan uga bisa milih supaya wong liya ngubungi panjenengan liwat jeneng pa
 'nchanges' => '$1 {{PLURAL:$1|pangowahan|owah-owahan}}',
 'recentchanges' => 'Owah-owahan',
 'recentchanges-legend' => 'Pilihan owah-owahan pungkasan',
-'recentchangestext' => 'Runutna owah-owahan pungkasan ing wiki iki ing kaca iki.',
+'recentchanges-summary' => 'Runutna owah-owahan pungkasan ing wiki iki ing kaca iki.',
 'recentchanges-feed-description' => "Urutna owah-owahan anyar ing wiki ing ''feed'' iki.",
 'recentchanges-label-newpage' => 'Suntingan iki gawé kaca anyar',
 'recentchanges-label-minor' => 'Iki suntingan sithik',
index 9f45136..655c04e 100644 (file)
@@ -60,28 +60,33 @@ $specialPageAliases = array(
        'Activeusers'               => array( 'აქტიური_მომხმარებლები' ),
        'Allmessages'               => array( 'ყველა_შეტყობინება' ),
        'Allpages'                  => array( 'ყველა_გვერდი' ),
-       'Ancientpages'              => array( 'მხცოვანიგვერდები' ),
+       'Ancientpages'              => array( 'მხცოვანი_გვერდები' ),
+       'Badtitle'                  => array( 'ცუდი_სათაური' ),
        'Blankpage'                 => array( 'ცარიელი_გვერდი' ),
        'Block'                     => array( 'დაბლოკვა' ),
        'Blockme'                   => array( 'დამბლოკე' ),
-       'BrokenRedirects'           => array( 'გაწყვეტილიგადამისამართება' ),
+       'BrokenRedirects'           => array( 'გაწყვეტილი_გადამისამართება' ),
        'Categories'                => array( 'კატეგორიები' ),
+       'ChangeEmail'               => array( 'ელ-ფოსტის_შეცვლა' ),
        'ChangePassword'            => array( 'პაროლის_შეცვლა' ),
        'ComparePages'              => array( 'გვერდების_შედარება' ),
        'Confirmemail'              => array( 'ელ-ფოსტის_დადასტურება' ),
        'Contributions'             => array( 'წვლილი' ),
        'CreateAccount'             => array( 'ანგარიშის_შექმნა' ),
        'Disambiguations'           => array( 'მრავალმნიშვნელოვნება' ),
-       'DoubleRedirects'           => array( 'ორმაგიგადამისამართება' ),
+       'DoubleRedirects'           => array( 'ორმაგი_გადამისამართება' ),
+       'EditWatchlist'             => array( 'კონტროლის_სიის_რედაქტირება' ),
        'Emailuser'                 => array( 'მიწერა_მომხმარებელს' ),
        'Export'                    => array( 'ექსპორტი' ),
        'FileDuplicateSearch'       => array( 'ფაილის_დუბლიკატის_ძიება' ),
        'Import'                    => array( 'იმპორტი' ),
        'BlockList'                 => array( 'ბლოკირებების_სია' ),
-       'LinkSearch'                => array( 'á\83\91á\83\9bá\83£á\83\9aá\83\98á\83¡_á\83«á\83\94ება' ),
+       'LinkSearch'                => array( 'á\83\91á\83\9bá\83£á\83\9aá\83\98á\83¡_á\83«á\83\98ება' ),
        'Listadmins'                => array( 'ადმინისტრატორების_სია' ),
        'Listbots'                  => array( 'ბოტების_სია' ),
-       'Listfiles'                 => array( 'სურსია' ),
+       'Listfiles'                 => array( 'ფაილების_სია' ),
+       'Listgrouprights'           => array( 'ჯგუფის_უფლებათა_სია' ),
+       'Listredirects'             => array( 'გადამისამართებების_სია' ),
        'Listusers'                 => array( 'მომხმარებელთა_სია' ),
        'Lonelypages'               => array( 'ობოლიგვერდები' ),
        'Longpages'                 => array( 'გრძელიგვერდები' ),
@@ -130,9 +135,13 @@ $magicWords = array(
        'img_thumbnail'           => array( '1', 'მინიატიურა', 'მინი', 'მინიასლი', 'ცეროდენა', 'thumbnail', 'thumb' ),
        'img_right'               => array( '1', 'მარჯვნივ', 'right' ),
        'img_left'                => array( '1', 'მარცხნივ', 'left' ),
+       'img_none'                => array( '1', 'არა', 'none' ),
        'img_width'               => array( '1', '$1პქ', '$1px' ),
-       'img_center'              => array( '1', 'ცენტრი', 'center', 'centre' ),
+       'img_center'              => array( '1', 'ცენტრი', 'ცენტრში', 'center', 'centre' ),
        'img_border'              => array( '1', 'საზღვარი', 'border' ),
+       'img_top'                 => array( '1', 'ზედა', 'top' ),
+       'img_middle'              => array( '1', 'შუა', 'middle' ),
+       'img_bottom'              => array( '1', 'ქვედა', 'bottom' ),
        'special'                 => array( '0', 'სპეციალური', 'special' ),
 );
 
@@ -937,6 +946,7 @@ $2
 'node-count-exceeded-warning' => 'გვერდზე გადამეტებულია კვანძების რაოდენობა',
 'expansion-depth-exceeded-category' => 'გვერდები გახსნის სიღრმის გადამეტებით',
 'expansion-depth-exceeded-warning' => 'გვერდზე გადამეტებულია ჩადგმების ზღვარი',
+'parser-unstrip-loop-warning' => 'აღმოჩენილია ციკლური ბმული',
 'parser-unstrip-recursion-limit' => 'გადამეტებულია რეკურსიის ზღვარი ($1)',
 
 # "Undo" feature
@@ -1115,9 +1125,9 @@ $1",
 'mergelogpagetext' => 'ქვემოთ წარმოდგენილია ამ გვერდის ბოლო გაერთიანებათა სია',
 
 # Diffs
-'history-title' => 'ცვლილებათა ისტორია სტატიაში „$1“',
-'difference-title' => 'განსხვავება გადახედვებს შორის " $1 "',
-'difference-title-multipage' => 'განსხვავება „$1“ და „$2“ გვერდებს შორის',
+'history-title' => '$1: ცვლილებათა ისტორია',
+'difference-title' => '$1: განსხვავება გადახედვებს შორის',
+'difference-title-multipage' => '$1 და $2: განსხვავება გვერდებს შორის',
 'difference-multipage' => '(განსხვავება გვერდებს შორის)',
 'lineno' => 'ხაზი $1:',
 'compareselectedversions' => 'არჩეული ვერსიების შედარება',
@@ -1477,7 +1487,7 @@ $1",
 'nchanges' => '$1 ცვლილება',
 'recentchanges' => 'ბოლო ცვლილებები',
 'recentchanges-legend' => 'ბოლო ცვლილებების პარამეტრები',
-'recentchangestext' => 'უთვალთვალეთ ვიკიში ბოლო ცვლილებებს ამ გვერდზე.',
+'recentchanges-summary' => 'უთვალთვალეთ ვიკიში ბოლო ცვლილებებს ამ გვერდზე.',
 'recentchanges-feed-description' => 'ვიკის უახლესი ცვლილებების მეთვალყურეობა ამ არხში.',
 'recentchanges-label-newpage' => 'ამ რედაქტირებით შეიქმნა ახალი გვერდი',
 'recentchanges-label-minor' => 'ეს არის მცირე შესწორება',
@@ -1669,14 +1679,15 @@ $1',
 'backend-fail-writetemp' => 'დროებითი ფაილის დაწერა ვერ ხერხდება.',
 'backend-fail-closetemp' => 'დროებითი ფაილის დახურვა ვერ ხერხდება.',
 'backend-fail-read' => 'ფაილი $1-ის წაკითხვა ვერ მოხერხდა.',
-'backend-fail-create' => 'á\83¤á\83\90á\83\98á\83\9aá\83\98 $1-á\83\98á\83¡ á\83¨á\83\94á\83¥á\83\9bá\83\9cა ვერ მოხერხდა.',
-'backend-fail-maxsize' => 'á\83¤á\83\90á\83\98á\83\9aá\83\98 $1-á\83\98á\83¡ á\83¨á\83\94á\83¥á\83\9bá\83\9cá\83\90 á\83\95á\83\94á\83  á\83\9bá\83\9dá\83®á\83\94á\83 á\83®á\83\93á\83\90, á\83 á\83\90á\83\93á\83\92á\83\90á\83\9cá\83\90á\83ª á\83\9bá\83\98á\83¡á\83\98 á\83\96á\83\9dá\83\9bá\83\90 á\83\90á\83­á\83\90á\83 á\83\91á\83\94á\83\91á\83¡ {{PLURAL:$2|$2 ბაიტს|$2 ბაიტს}}.',
+'backend-fail-create' => 'á\83¤á\83\90á\83\98á\83\9aá\83\98 $1-á\83\98á\83¡ á\83©á\83\90á\83¬á\83\94á\83 ა ვერ მოხერხდა.',
+'backend-fail-maxsize' => 'á\83¤á\83\90á\83\98á\83\9aá\83\98 $1-á\83\98á\83¡ á\83©á\83\90á\83¬á\83\94á\83 á\83\90 á\83\95á\83\94á\83  á\83\9bá\83\9dá\83®á\83\94á\83 á\83®á\83\93á\83\90, á\83 á\83\90á\83\93á\83\92á\83\90á\83\9cá\83\90á\83ª á\83\9bá\83\98á\83¡á\83\98 á\83\96á\83\9dá\83\9bá\83\90 á\83\90á\83­á\83\90á\83 á\83\91á\83\94á\83\91á\83¡ {{PLURAL:$2|á\83\94á\83 á\83\97 ბაიტს|$2 ბაიტს}}.',
 'backend-fail-readonly' => 'საცავი "$1" ამჟამად ხელმისაწვდომია მხოლოდ წაკითხვის რეჟიმში. მიზეზი: "$2"',
 'backend-fail-synced' => 'ფაილი "$1" იმყოფება შიდა საცავის შეუთანხმებელ მდგომარეობაში',
 'backend-fail-connect' => '"$1" საცავთან დაკავშირება ვერ მოხერხდა.',
 'backend-fail-internal' => '"$1" საცავში მოხდა დაუდგენელი შეცდომა.',
 'backend-fail-contenttype' => 'ფაილის შემადგენლობის ტიპის დადგენა ვერ მოხერხდა, "$1"-ში შესანახად.',
 'backend-fail-batchsize' => 'საცავმა მიიღო {{PLURAL:$1|ფაილის ოპერაციის|ფაილების ოპერაციების}} ბლოკი $1-დან, შეზღუდვა შეადგენს $2 {{PLURAL:$1|ოპერაციას}}.',
+'backend-fail-usable' => 'Не удалось записать файлფაილი $1 ჩაწერა ვერ მოხერხდა უფლებების უკმარისობის ან საჭირო საქაღალდეების არქონის გამო.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'ჟურნალის მონაცემთა ბაზებთან დაკავშირება "$1" მონაცემთა შესანახად ვერ მოხერხდა.',
index 52e77bb..1425327 100644 (file)
@@ -744,7 +744,7 @@ $3 keltirilgen sebebi: ''$2''",
 'last' => 'aqır.',
 'page_first' => 'birinshi',
 'page_last' => "aqırg'ı",
-'histlegend' => "Tu'sindirme: salıstırajaq nusqaların'ızdı saylan' ha'mde <Enter> knopkasın yamasa to'mendegi knopkani basın'.<br />
+'histlegend' => "Tu'sindirme: salıstırajaq nusqaların'ızdı saylan' ha'mde Enter knopkasın yamasa to'mendegi knopkani basın'.<br />
 Sha'rtli belgiler: (ha'z.) = ha'zirgi nusqasi menen parqı,
 (aqır.) = aldıng'ı nusqasi menen parqı, k = kishi o'zgeris",
 'history-fieldset-title' => 'Tariyxınan izlew',
@@ -1065,7 +1065,7 @@ Barlıq mag'lıwmat tu'rin (sonın' ishinde sa'wbet betlerdi, shablonlardı h.t.
 'nchanges' => "{{PLURAL:$1|1 o'zgeris|$1 o'zgeris}}",
 'recentchanges' => "Aqırg'ı o'zgerisler",
 'recentchanges-legend' => "Aqırg'ı o'zgerisler sazlawları",
-'recentchangestext' => "Bul bette usı wikidegi ha'zirgi o'zgerisler baqlanadı.",
+'recentchanges-summary' => "Bul bette usı wikidegi ha'zirgi o'zgerisler baqlanadı.",
 'recentchanges-feed-description' => "Wikidin' usı ag'ımındag'ı en' aqırg'ı o'zgerislerin baqlaw.",
 'recentchanges-label-newpage' => "Bul o'zgeris arqalı taza bet jaratıldı",
 'recentchanges-label-minor' => "Bul kishi o'zgeris",
index ce2593c..fe97fb1 100644 (file)
@@ -794,7 +794,7 @@ i yesɛan akk awalen i banen-d).",
 'nchanges' => '$1 {{PLURAL:$1|Abeddel|Ibeddlen}}',
 'recentchanges' => 'Ibeddlen imaynuten',
 'recentchanges-legend' => 'Tifranin n ibeddilen imaynuten',
-'recentchangestext' => 'Ḍfer ibeddilen imaynuten n {{SITENAME}}.',
+'recentchanges-summary' => 'Ḍfer ibeddilen imaynuten n {{SITENAME}}.',
 'recentchanges-feed-description' => 'Ḍfer ibeddilen imaynuten n wiki-yagi deg usuddem-agi.',
 'recentchanges-label-newpage' => 'Abeddel agi ad yesnulfu asebter amaynut',
 'recentchanges-label-minor' => 'Wagi d-abeddel amectuḥ',
index 91a3f50..69e8cb8 100644 (file)
@@ -683,7 +683,7 @@ HTML tags لوڑے.',",
 'nchanges' => '$1 {{PLURAL:$1|تبدیلی|تبدیلیاں}}',
 'recentchanges' => 'حالیہ تبدیلی',
 'recentchanges-legend' => 'حالیہ تبدیلیان اختیارات',
-'recentchangestext' => 'ھیہ صفحا کھوار ویکیپیڈیا باک تازہ تریں تبدیلیان مشاہدہ کورے',
+'recentchanges-summary' => 'ھیہ صفحا کھوار ویکیپیڈیا باک تازہ تریں تبدیلیان مشاہدہ کورے',
 'recentchanges-feed-description' => 'کھوارا ترجمہ',
 'recentchanges-label-newpage' => 'ھیہ ترمیم نوغ صفحہ تخلیق آریر',
 'recentchanges-label-minor' => 'ھیہ ای معمولی ترمیم شیر',
@@ -774,7 +774,8 @@ HTML tags لوڑے.',",
 'protectedpages' => 'محفوظ شدہ صفحہ',
 'protectedtitles' => 'محفوظ شدہ صفحہ',
 'listusers' => 'فہرست ارکان',
-'usercreated' => 'ساوزینو ھوی $1 at $2',
+'usercreated' => '
+{{GENDER:$3|تخلیق شدہ}}  بتاریخ $1 بوقت $2',
 'newpages' => 'نوغ صفحات',
 'newpages-username' => 'اسمِ رکنیت',
 'move' => 'منتقل',
index e802c5b..62c3c42 100644 (file)
@@ -710,7 +710,7 @@ Eke şertê ilawekerdey ke niyê ro, idarekerê bini {{SITENAME}} de nêşikinê
 'searchprofile-images-tooltip' => 'Dosya bıfeteliye',
 'searchprofile-everything-tooltip' => 'Zerreki pêro sae ke (pelunê hurênaişi daxıl)',
 'searchprofile-advanced-tooltip' => 'Caunê namunê xısusiu de cıfeteliye',
-'search-result-size' => '$1 ({{PLURAL:$2|1 çekuye|$2 çekuy}})',
+'search-result-size' => '$1 ({{PLURAL:$2|1 kelime|$2 kelimey}})',
 'search-result-category-size' => '{{PLURAL:$1|1 eza|$1 ezey}} ({{PLURAL:$2|1 kategoriya bınêne|$2 kategoriyê bınêni}}, {{PLURAL:$3|1 dosya|$3 dosyey}})',
 'search-redirect' => '(hetêcıraberdene $1)',
 'search-section' => '(qısımo $1)',
@@ -882,7 +882,7 @@ Sıma ke ney bıgurenê, karê sıma de no namdarêni dano.',
 'nchanges' => '$1 {{PLURAL:$1|tedil|tedili}}',
 'recentchanges' => 'Vurnaisê peyêni',
 'recentchanges-legend' => 'Alternatifê vurnaisunê peyênu',
-'recentchangestext' => 'Na weiyekerdena wiki de vurnaisê tewrpeyêne ke biyê ine teqib ke.',
+'recentchanges-summary' => 'Na weiyekerdena wiki de vurnaisê tewrpeyêne ke biyê ine teqib ke.',
 'recentchanges-feed-description' => 'Na weiyekerdena wiki de vurnaisê tewrpeyêne ke biyê ine teqib ke.',
 'recentchanges-label-newpage' => 'Nê vurnaişi pelê da newiye afernê.',
 'recentchanges-label-minor' => 'No zu vurnaiso qıckeko',
@@ -1206,7 +1206,7 @@ Tı şikina sewiya sevekiyaena na pele bıvurnê, hema yê nae sevekiyaena qedem
 # Contributions
 'contributions' => 'İştırakê karberi',
 'contributions-title' => '$1 de iştırakê karberi',
-'mycontris' => 'İştırakê mı',
+'mycontris' => 'İştıraxê mı',
 'contribsub2' => 'Serba $1 ($2)',
 'uctop' => '(ser)',
 'month' => 'Asme ra (u ravêr):',
index 3565a67..6b5676e 100644 (file)
@@ -1324,7 +1324,7 @@ $3 كەلتىرىلگەن سەبەبى: ''$2''",
 # Recent changes
 'nchanges' => '$1 وزگەرىس',
 'recentchanges' => 'جۋىقتاعى وزگەرىستەر',
-'recentchangestext' => 'بۇل بەتتە وسى ۋىيكىيدەگى بولعان جۋىقتاعى وزگەرىستەر بايقالادى.',
+'recentchanges-summary' => 'بۇل بەتتە وسى ۋىيكىيدەگى بولعان جۋىقتاعى وزگەرىستەر بايقالادى.',
 'recentchanges-feed-description' => 'بۇل ارنامەنەن ۋىيكىيدەگى ەڭ سوڭعى وزگەرىستەر قاداعالانادى.',
 'rcnote' => "$3 كەزىنە دەيىن — تومەندە سوڭعى {{PLURAL:$2|كۇندەگى|'''$2''' كۇندەگى}}, سوڭعى '''$1''' وزگەرىس كورسەتىلەدى.",
 'rcnotefrom' => "'''$2''' كەزىنەن بەرى — تومەندە '''$1''' جەتكەنشە دەيىن وزگەرىستەر كورسەتىلەدى.",
index 15a4e51..9b9e1a1 100644 (file)
@@ -533,7 +533,7 @@ $messages = array(
 
 'errorpagetitle' => 'Қате',
 'returnto' => '$1 дегенге қайта келу.',
-'tagline' => '{{SITENAME}} жобасынан',
+'tagline' => '{{SITENAME}} жобасынан алынған мәлімет',
 'help' => 'Анықтама',
 'search' => 'Іздеу',
 'searchbutton' => 'Іздеу',
@@ -1521,7 +1521,7 @@ $3 келтірілген себебі: ''$2''",
 'nchanges' => '$1 өзгеріс',
 'recentchanges' => 'Жуықтағы өзгерістер',
 'recentchanges-legend' => 'Жуықтағы өзгерістер баптаулары',
-'recentchangestext' => 'Бұл бетте осы уикидегі болған жуықтағы өзгерістер байқалады.',
+'recentchanges-summary' => 'Бұл бетте осы уикидегі болған жуықтағы өзгерістер байқалады.',
 'recentchanges-feed-description' => 'Бұл арнаменен уикидегі ең соңғы өзгерістер қадағаланады.',
 'recentchanges-label-newpage' => 'Бұл өңдеме арқылы жаңа бет басталды',
 'recentchanges-label-minor' => 'Бұл шағын өңдеме',
index b981fe1..3068bda 100644 (file)
@@ -1287,7 +1287,7 @@ Eger bunı jetistirwdi tañdasañız, bul tüzetwiñizdiñ awtorlığın anıqta
 # Recent changes
 'nchanges' => '$1 özgeris',
 'recentchanges' => 'Jwıqtağı özgerister',
-'recentchangestext' => 'Bul bette osı wïkïdegi bolğan jwıqtağı özgerister baýqaladı.',
+'recentchanges-summary' => 'Bul bette osı wïkïdegi bolğan jwıqtağı özgerister baýqaladı.',
 'recentchanges-feed-description' => 'Bul arnamenen wïkïdegi eñ soñğı özgerister qadağalanadı.',
 'rcnote' => "$3 kezine deýin — tömende soñğı {{PLURAL:$2|kündegi|'''$2''' kündegi}}, soñğı '''$1''' özgeris körsetiledi.",
 'rcnotefrom' => "'''$2''' kezinen beri — tömende '''$1''' jetkenşe deýin özgerister körsetiledi.",
index a56ae7c..e7f6e67 100644 (file)
@@ -948,7 +948,7 @@ $2',
 'userinvalidcssjstitle' => "'''ប្រយ័ត្ន៖''' គ្មានសំបក \"\$1\"។ ចងចាំថា ទំព័រផ្ទាល់ខ្លួន .css និង .js ប្រើប្រាស់ ចំណងជើង ជាអក្សរតូច, ឧទាហរណ៍  {{ns:user}}:Foo/vector.css ត្រឹមត្រូវ, រីឯ {{ns:user}}:Foo/Vector.css មិនត្រឹមត្រូវ។",
 'updated' => '(បានបន្ទាន់សម័យ)',
 'note' => "'''ចំណាំ៖'''",
-'previewnote' => "'''á\9e\93á\9f\81á\9f\87á\9e\82á\9f\92á\9e\9aá\9e¶á\9e\93á\9f\8bá\9e\8fá\9f\82á\9e\87á\9e¶â\80\8bá\9e\80á\9e¶á\9e\9aá\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\80á\9e¶á\9e\9aá\9e\98á\9e¾á\9e\9bá\9e\87á\9e¶á\9e\98á\9e»á\9e\93á\9e\94á\9f\89á\9e»á\9e\8eá\9f\92á\9e\8eá\9f\84á\9f\87á\9f\94 á\9e\94á\9f\86á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aâ\80\8bមិនទាន់បាន​រក្សាទុកទេ!'''",
+'previewnote' => "'''á\9e\9fá\9e¼á\9e\98á\9e\85á\9e¶á\9f\86á\9e\90á\9e¶á\9e\93á\9f\81á\9f\87á\9e\82á\9f\92á\9e\9aá\9e¶á\9e\93á\9f\8bá\9e\8fá\9f\82á\9e\87á\9e¶â\80\8bá\9e\80á\9e¶á\9e\9aá\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\80á\9e¶á\9e\9aá\9e\98á\9e¾á\9e\9bá\9e\87á\9e¶á\9e\98á\9e»á\9e\93á\9e\94á\9f\89á\9e»á\9e\8eá\9f\92á\9e\8eá\9f\84á\9f\87á\9f\94 á\9e\94á\9f\86á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aâ\80\8bá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80មិនទាន់បាន​រក្សាទុកទេ!'''",
 'previewconflict' => 'ការមើលមុននេះយោងតាមអត្ថបទក្នុងប្រអប់កែប្រែខាងលើ។ ទំព័រអត្ថបទនឹងបង្ហាញចេញបែបនេះប្រសិនបើអ្នកជ្រើសរើសរក្សាទុក។',
 'session_fail_preview' => "'''សូមអភ័យទោស! យើងមិនអាចរក្សាទុកការកែប្រែរបស់អ្នកបានទេ ដោយសារបាត់ទិន្នន័យវេនការងារ។
 
@@ -1555,7 +1555,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|បំលាស់ប្ដូរ|បំលាស់ប្ដូរ}}',
 'recentchanges' => 'បំលាស់ប្ដូរ​ថ្មីៗ',
 'recentchanges-legend' => 'ជម្រើសនានា​ សម្រាប់ការបង្ហាញបន្លាស់ប្ដូរថ្មីៗ',
-'recentchangestext' => 'តាមដានរាល់បន្លាស់ប្ដូររថ្មីៗបំផុត ចំពោះវិគីនៅលើទំព័រនេះ។',
+'recentchanges-summary' => 'តាមដានរាល់បំលាស់ប្ដូរថ្មីៗបំផុតចំពោះវិគីនៅលើទំព័រនេះ។',
 'recentchanges-feed-description' => 'តាមដាន​បន្លាស់ប្ដូរថ្មីៗ​បំផុត​នៃ​វិគី​នេះក្នុង​មតិព័ត៌មាន​នេះ​។',
 'recentchanges-label-newpage' => 'ការកែប្រែនេះបានបង្កើតទំព័រថ្មីមួយ',
 'recentchanges-label-minor' => 'នេះជាការកែប្រែតិចតួចមួយប៉ុណ្ណោះ',
index 1cf1258..f1c641d 100644 (file)
@@ -1029,7 +1029,7 @@ $2',
 'nchanges' => '$1 {{PLURAL:$1|ಬದಲಾವಣೆ|ಬದಲಾವಣೆಗಳು}}',
 'recentchanges' => 'ಇತ್ತೀಚೆಗಿನ ಬದಲಾವಣೆಗಳು',
 'recentchanges-legend' => 'ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳ ಆಯ್ಕೆಗಳು',
-'recentchangestext' => 'ವಿಕಿಗೆ ಮಾಡಲ್ಪಟ್ಟ ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳನ್ನು ಈ ಪುಟದಲ್ಲಿ ನೀವು ಕಾಣಬಹುದು.',
+'recentchanges-summary' => 'ವಿಕಿಗೆ ಮಾಡಲ್ಪಟ್ಟ ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳನ್ನು ಈ ಪುಟದಲ್ಲಿ ನೀವು ಕಾಣಬಹುದು.',
 'recentchanges-feed-description' => 'ವಿಕಿಯಲ್ಲಿ ಆಗುವ ಹೊಸ ಬದಲಾವಣೆಗಳ ಮೇಲೆ ನಿಗ ಇಡಲು ಉಪಯೋಗವಾಗುವ ಫೀಡು.',
 'recentchanges-label-minor' => 'ಇದು ಚುಟುಕಾದ ಬದಲಾವಣೆ',
 'rcnote' => "$5, $4 ವರೆಗೆ ಹಿಂದಿನ {{PLURAL:$2|ದಿನದಲ್ಲಿ|'''$2''' ದಿನಗಳಲ್ಲಿ}} ಮಾಡಲಾಗಿರುವ {{PLURAL:$1|'''೧''' ಬದಲಾವಣೆ|'''$1''' ಬದಲಾವಣೆಗಳು}} ಕೆಳಗಿವೆ.",
index 5a05292..31d4e20 100644 (file)
@@ -24,6 +24,7 @@
  * @author Kaganer
  * @author Klutzy
  * @author Kwj2772
+ * @author Mintz0223
  * @author Pi.C.Noizecehx
  * @author PuzzletChung
  * @author TheAlpha for knowledge
@@ -31,6 +32,7 @@
  * @author Yknok29
  * @author לערי ריינהארט
  * @author 관인생략
+ * @author 아라
  */
 
 $namespaceNames = array(
@@ -64,12 +66,14 @@ $specialPageAliases = array(
        'Allmessages'               => array( '모든메시지' ),
        'Allpages'                  => array( '모든문서' ),
        'Ancientpages'              => array( '오래된문서' ),
+       'Badtitle'                  => array( '잘못된이름', '인식불가이름', '잘못된제목', '인식불가제목' ),
        'Blankpage'                 => array( '빈문서' ),
        'Block'                     => array( '차단' ),
        'Blockme'                   => array( '자가차단' ),
        'Booksources'               => array( '책찾기' ),
        'BrokenRedirects'           => array( '끊긴넘겨주기' ),
        'Categories'                => array( '분류' ),
+       'ChangeEmail'               => array( '이메일변경', '이메일바꾸기' ),
        'ChangePassword'            => array( '비밀번호변경', '비밀번호바꾸기' ),
        'ComparePages'              => array( '문서비교' ),
        'Confirmemail'              => array( '이메일인증' ),
@@ -79,6 +83,7 @@ $specialPageAliases = array(
        'DeletedContributions'      => array( '삭제된기여' ),
        'Disambiguations'           => array( '동음이의', '동음이의문서' ),
        'DoubleRedirects'           => array( '이중넘겨주기' ),
+       'EditWatchlist'             => array( '주시문서목록편집' ),
        'Emailuser'                 => array( '이메일보내기' ),
        'Export'                    => array( '내보내기' ),
        'Fewestrevisions'           => array( '역사짧은문서' ),
@@ -86,6 +91,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( '파일경로', '그림경로' ),
        'Import'                    => array( '가져오기' ),
        'Invalidateemail'           => array( '이메일인증취소', '이메일인증해제' ),
+       'JavaScriptTest'            => array( '자바스크립트시험' ),
        'BlockList'                 => array( '차단된사용자', '차단목록' ),
        'LinkSearch'                => array( '외부링크찾기', '외부링크검색' ),
        'Listadmins'                => array( '관리자', '관리자목록' ),
@@ -114,6 +120,7 @@ $specialPageAliases = array(
        'Newimages'                 => array( '새파일', '새그림' ),
        'Newpages'                  => array( '새문서' ),
        'PasswordReset'             => array( '암호변경' ),
+       'PermanentLink'             => array( '고유링크', '영구링크' ),
        'Popularpages'              => array( '인기있는문서' ),
        'Preferences'               => array( '환경설정' ),
        'Prefixindex'               => array( '접두어찾기' ),
@@ -124,6 +131,7 @@ $specialPageAliases = array(
        'Recentchanges'             => array( '최근바뀜' ),
        'Recentchangeslinked'       => array( '링크최근바뀜' ),
        'Revisiondelete'            => array( '특정판삭제' ),
+       'RevisionMove'              => array( '특정판이동' ),
        'Search'                    => array( '찾기', '검색' ),
        'Shortpages'                => array( '짧은문서' ),
        'Specialpages'              => array( '특수문서', '특수기능' ),
@@ -141,6 +149,7 @@ $specialPageAliases = array(
        'Unusedtemplates'           => array( '안쓰는틀' ),
        'Unwatchedpages'            => array( '주시안되는문서' ),
        'Upload'                    => array( '파일올리기', '그림올리기' ),
+       'UploadStash'               => array( '올린비공개파일' ),
        'Userlogin'                 => array( '로그인' ),
        'Userlogout'                => array( '로그아웃' ),
        'Userrights'                => array( '권한조정' ),
@@ -235,6 +244,7 @@ $magicWords = array(
        'nse'                     => array( '0', '이름E:', '이름공간E:', 'NSE:' ),
        'localurl'                => array( '0', '지역주소:', 'LOCALURL:' ),
        'localurle'               => array( '0', '지역주소E:', 'LOCALURLE:' ),
+       'articlepath'             => array( '0', '항목경로', '기사경로', 'ARTICLEPATH' ),
        'server'                  => array( '0', '서버', 'SERVER' ),
        'servername'              => array( '0', '서버이름', 'SERVERNAME' ),
        'scriptpath'              => array( '0', '스크립트경로', 'SCRIPTPATH' ),
@@ -345,9 +355,11 @@ $messages = array(
 'tog-watchlisthideliu' => '주시문서 목록에서 로그인한 사용자의 편집을 숨기기',
 'tog-watchlisthideanons' => '주시문서 목록에서 비등록 사용자의 편집을 숨기기',
 'tog-watchlisthidepatrolled' => '주시문서 목록에서 검토된 편집을 숨기기',
+'tog-nolangconversion' => '변형 변환을 비활성화',
 'tog-ccmeonemails' => '이메일을 보낼 때 내 이메일로 복사본을 보내기',
 'tog-diffonly' => '편집 차이를 비교할 때 문서 내용을 보지 않기',
 'tog-showhiddencats' => '숨은 분류 보기',
+'tog-noconvertlink' => '링크 제목 변환을 비활성화',
 'tog-norollbackdiff' => '되돌리기 후 차이를 보이지 않기',
 
 'underline-always' => '항상',
@@ -686,6 +698,8 @@ $2',
 'filereadonlyerror' => '‘$2’ 파일 저장소가 읽기 전용이기 때문에 ‘$1’ 파일을 변경할 수 없습니다.
 
 저장소 관리자가 파일 저장소를 잠근 이유에 대해 "\'\'$3\'\'"이라는 설명을 남겼습니다.',
+'invalidtitle-knownnamespace' => '제목 오류: 이름공간 "$2"와 텍스트 "$3"',
+'invalidtitle-unknownnamespace' => '제목 오류: 알 수 없는 이름공간 번호 "$1"과, 텍스트 "$2"',
 
 # Virus scanner
 'virus-badscanner' => "잘못된 설정: 알 수 없는 바이러스 검사기: ''$1''",
@@ -791,6 +805,7 @@ $2',
 # Change password dialog
 'resetpass' => '비밀번호 바꾸기',
 'resetpass_announce' => '이메일로 받은 임시 비밀번호로 로그인했습니다. 로그인을 마치려면 새 비밀번호를 여기에서 설정해야 합니다:',
+'resetpass_text' => '<!-- 여기에 텍스트를 더하세요 -->',
 'resetpass_header' => '비밀번호 변경',
 'oldpassword' => '이전 비밀번호:',
 'newpassword' => '새 비밀번호:',
@@ -1049,6 +1064,8 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'node-count-exceeded-warning' => '페이지가 노드 수를 초과하였습니다.',
 'expansion-depth-exceeded-category' => '페이지가 확장 깊이를 초과하였습니다.',
 'expansion-depth-exceeded-warning' => '페이지가 확장 깊이를 초과하였습니다',
+'parser-unstrip-loop-warning' => '스트립하지 않는 반복이 감지됨',
+'parser-unstrip-recursion-limit' => '스트립하지 않는 재귀 한도가 초과됨 ($1)',
 
 # "Undo" feature
 'undo-success' => '이 편집을 되돌리려면 아래의 변경되는 사항을 확인한 후 저장해주세요.',
@@ -1226,7 +1243,9 @@ $1",
 'mergelogpagetext' => '다음은 한 문서의 역사를 다른 문서의 역사와 합친 최근 기록입니다.',
 
 # Diffs
-'history-title' => '‘$1’ 문서의 변경 내력',
+'history-title' => '"$1"  문서의 변경 내력',
+'difference-title' => '"$1"의 두 판 사이의 차이',
+'difference-title-multipage' => '문서 "$1"과 "$2" 간의 차이',
 'difference-multipage' => '(문서간의 차이)',
 'lineno' => '$1번째 줄:',
 'compareselectedversions' => '선택된 판들을 비교하기',
@@ -1321,6 +1340,7 @@ $1",
 'prefs-beta' => '베타 기능',
 'prefs-datetime' => '날짜와 시각',
 'prefs-labs' => '실험 중인 기능',
+'prefs-user-pages' => '사용자 문서',
 'prefs-personal' => '사용자 정보',
 'prefs-rc' => '최근 바뀜',
 'prefs-watchlist' => '주시문서 목록',
@@ -1583,7 +1603,7 @@ $1",
 'nchanges' => '$1개 바뀜',
 'recentchanges' => '최근 바뀜',
 'recentchanges-legend' => '최근 바뀜 설정',
-'recentchangestext' => '위키의 최근 바뀜 내역이 나와 있습니다.',
+'recentchanges-summary' => '위키의 최근 바뀜 내역이 나와 있습니다.',
 'recentchanges-feed-description' => '위키의 최근 바뀜',
 'recentchanges-label-newpage' => '새로운 문서',
 'recentchanges-label-minor' => '사소한 편집',
@@ -1738,7 +1758,7 @@ $1",
 'filename-bad-prefix' => '올리려고 하는 파일 이름이 \'\'\'"$1"\'\'\'(으)로 시작합니다.
 "$1"은(는) 디지털 사진기가 자동으로 붙이는 의미없는 이름입니다.
 파일에 대해 알기 쉬운 이름을 골라주세요.',
-'filename-prefix-blacklist' => ' #<!-- ì\9d´ ì¤\84ì\9d\80 ê·¸ë\8c\80ë¡\9c ë\91\90ì\8b­ì\8b\9cì\98¤. --> <pre>
+'filename-prefix-blacklist' => ' #<!-- ì\9d´ ì¤\84ì\9d\80 ê·¸ë\8c\80ë¡\9c ë\91\90ì\84¸ì\9a\94 --> <pre>
 # 문법은 다음과 같습니다:
 #   * "#"에서 그 줄의 끝까지는 코멘트입니다.
 #   * 비어 있지 않은 줄은 디지털 카메라에서 자동적으로 부여하는 파일 접두어입니다.
@@ -1751,7 +1771,7 @@ IMG # 일반
 JD # 제놉틱
 MGP # 펜탁스
 PICT # 기타
- #</pre> <!-- ì\9d´ ì¤\84ì\9d\80 ê·¸ë\8c\80ë¡\9c ë\91\90ì\8b­ì\8b\9cì\98¤. -->',
+ #</pre> <!-- ì\9d´ ì¤\84ì\9d\80 ê·¸ë\8c\80ë¡\9c ë\91\90ì\84¸ì\9a\94 -->',
 'upload-success-subj' => '올리기 성공',
 'upload-success-msg' => '파일을 [$2]에서 성공적으로 올렸습니다. 당신이 올린 파일이 여기 있습니다: [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => '올리기 실패',
@@ -1788,14 +1808,15 @@ $1',
 'backend-fail-writetemp' => '임시 파일을 쓸 수 없습니다.',
 'backend-fail-closetemp' => '임시 파일을 닫을 수 없습니다.',
 'backend-fail-read' => '$1 파일을 읽을 수 없습니다.',
-'backend-fail-create' => '$1 í\8c\8cì\9d¼ì\9d\84 ì\93¸ ì\88\98 ì\97\86습니다.',
-'backend-fail-maxsize' => '$2{{PLURAL:$2|ë°\94ì\9d´í\8a¸}}ë³´ë\8b¤ ì»¤ì\84\9c $1 í\8c\8cì\9d¼ì\9d\84 ì\83\9dì\84±하지 못했습니다.',
+'backend-fail-create' => '$1 í\8c\8cì\9d¼ì\9d\84 ì \80ì\9e¥í\95\98ì§\80 ëª»í\96\88습니다.',
+'backend-fail-maxsize' => '$2{{PLURAL:$2|ë°\94ì\9d´í\8a¸}}ë³´ë\8b¤ ì»¤ì\84\9c $1 í\8c\8cì\9d¼ì\9d\84 ì \80ì\9e¥하지 못했습니다.',
 'backend-fail-readonly' => '‘$1’ 저장 백엔드가 읽기 전용입니다. 자세한 이유는 다음과 같습니다: “$2”',
 'backend-fail-synced' => '파일 "$1"은 내부 저장 백엔드에 불안정한 상태로 있습니다.',
 'backend-fail-connect' => "'$1' 저장 백엔드에 접속하지 못했습니다.",
 'backend-fail-internal' => '"$1" 저장 백엔드에 알 수 없는 오류가 발생했습니다.',
 'backend-fail-contenttype' => '"$1"에 저장하기 위한 파일의 내용 유형을 판별하지 못했습니다.',
 'backend-fail-batchsize' => '저장 백엔드에서 $1개의 파일 {{PLURAL:$1|작업}}이 쌓여 있습니다; 한계는 $2개입니다.',
+'backend-fail-usable' => '파일 저장 권한이 없거나 저장 위치가 빠졌기 때문에 $1 파일을 저장할 수 없습니다.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => '저장소 백엔드 ‘$1’에 대한 저널 데이터베이스에 연결할 수 없습니다.',
@@ -1889,7 +1910,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'filehist' => '파일 역사',
 'filehist-help' => '날짜/시간 링크를 클릭하면 해당 시간의 파일을 볼 수 있습니다.',
 'filehist-deleteall' => '모두 삭제',
-'filehist-deleteone' => 'ì§\80ì\9a°ê¸°',
+'filehist-deleteone' => 'ì\82­ì \9c',
 'filehist-revert' => '되돌리기',
 'filehist-current' => '최신',
 'filehist-datetime' => '날짜/시간',
@@ -1925,6 +1946,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'shared-repo-from' => '($1)',
 'shared-repo' => '공용 저장소',
 'shared-repo-name-wikimediacommons' => '위키미디어 공용',
+'filepage.css' => '/* 이 CSS 설정은 파일 설명 페이지에 포함되며, 또한 해외 클라이언트 위키에 포함됩니다 */',
 
 # File reversion
 'filerevert' => '$1 되돌리기',
@@ -2185,7 +2207,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 # Special:ListGroupRights
 'listgrouprights' => '사용자 권한 목록',
 'listgrouprights-summary' => '다음은 이 위키에서 설정된 사용자 권한 그룹의 목록입니다.
-각각의 권한에 대해서는 [[{{MediaWiki:Listgrouprights-helppage}}|이곳]]을 참조하십시오.',
+각각의 권한에 대해서는 [[{{MediaWiki:Listgrouprights-helppage}}|이곳]]을 참고하세요.',
 'listgrouprights-key' => '* <span class="listgrouprights-granted">부여된 권한</span>
 * <span class="listgrouprights-revoked">해제된 권한</span>',
 'listgrouprights-group' => '그룹',
@@ -2235,6 +2257,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 # User Messenger
 'usermessage-summary' => '시스템 메시지 남기기',
 'usermessage-editor' => '시스템 메신저',
+'usermessage-template' => 'MediaWiki:UserMessage',
 
 # Watchlist
 'watchlist' => '주시문서 목록',
@@ -2513,6 +2536,7 @@ $1',
 'sp-contributions-username' => 'IP 주소 혹은 계정 이름:',
 'sp-contributions-toponly' => '최신판만 보기',
 'sp-contributions-submit' => '찾기',
+'sp-contributions-explain' => '',
 
 # What links here
 'whatlinkshere' => '여기를 가리키는 문서',
@@ -2966,15 +2990,38 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 
 # Stylesheets
 'common.css' => '/** 이 CSS 설정은 모든 스킨에 동일하게 적용됩니다 */',
+'standard.css' => '/* 이 CSS 설정은 모든 표준 스킨에 적용됩니다 */',
+'nostalgia.css' => '/* 이 CSS 설정은 모든 노스텔지아 스킨에 적용됩니다 */',
+'cologneblue.css' => '/* 이 CSS 설정은 모든 쾰른 블루 스킨에 적용됩니다 */',
 'monobook.css' => '/* 이 CSS 설정은 모든 모노북 스킨에 적용됩니다 */',
+'myskin.css' => '/* 이 CSS 설정은 모든 마이스킨 스킨에 적용됩니다 */',
+'chick.css' => '/* 이 CSS 설정은 모든 치크 스킨에 적용됩니다 */',
+'simple.css' => '/* 이 CSS 설정은 모든 심플 스킨에 적용됩니다 */',
 'modern.css' => '/* 이 CSS 설정은 모든 모던 스킨에 적용됩니다 */',
 'vector.css' => '/* 이 CSS 설정은 모든 벡터 스킨에 적용됩니다 */',
-'print.css' => '/* 이 CSS 설정은 출력/인쇄 화면에 적용됩니다. */',
+'print.css' => '/* 이 CSS 설정은 출력/인쇄 화면에 적용됩니다 */',
+'handheld.css' => '/* 이 CSS 설정은 $wgHandheldStyle에 설정한 스킨을 기반으로 한 휴대 기기에 적용됩니다 */',
+'noscript.css' => '/* 이 CSS 설정은 자바스크립트를 비활성화한 사용자에 적용됩니다 */',
+'group-autoconfirmed.css' => '/* 이 CSS 설정은 자동 인증된 사용자에만 적용됩니다 */',
+'group-bot.css' => '/* 이 CSS 설정은 봇에만 적용됩니다 */',
+'group-sysop.css' => '/* 이 CSS 설정은 관리자에만 적용됩니다 */',
+'group-bureaucrat.css' => '/* 이 CSS 설정은 사무관에만 적용됩니다 */',
 
 # Scripts
 'common.js' => '/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */',
-'monobook.js' => '/* 이 자바스크립트 설정은 모노북 스킨을 사용하는 사용자에게 적용됩니다. */',
-'vector.js' => '/* 이 자바스크립트 설정은 벡터 스킨을 사용하는 사용자에게 적용됩니다. */',
+'standard.js' => '/* 이 자바스크립트 설정은 표준 스킨을 사용하는 사용자에게 적용됩니다 */',
+'nostalgia.js' => '/* 이 자바스크립트 설정은 노스텔지아 스킨을 사용하는 사용자에게 적용됩니다 */',
+'cologneblue.js' => '/* 이 자바스크립트 설정은 쾰른 블루 스킨을 사용하는 사용자에게 적용됩니다 */',
+'monobook.js' => '/* 이 자바스크립트 설정은 모노북 스킨을 사용하는 사용자에게 적용됩니다 */',
+'myskin.js' => '/* 이 자바스크립트 설정은 마이스킨 스킨을 사용하는 사용자에게 적용됩니다 */',
+'chick.js' => '/* 이 자바스크립트 설정은 치크 스킨을 사용하는 사용자에게 적용됩니다 */',
+'simple.js' => '/* 이 자바스크립트 설정은 심플 스킨을 사용하는 사용자에게 적용됩니다 */',
+'modern.js' => '/* 이 자바스크립트 설정은 모던 스킨을 사용하는 사용자에게 적용됩니다 */',
+'vector.js' => '/* 이 자바스크립트 설정은 벡터 스킨을 사용하는 사용자에게 적용됩니다 */',
+'group-autoconfirmed.js' => '/* 이 자바스크립트 설정은 자동 인증된 사용자에만 적용됩니다 */',
+'group-bot.js' => '/* 이 자바스크립트 설정은 봇에만 적용됩니다 */',
+'group-sysop.js' => '/* 이 자바스크립트 설정은 관리자에만 적용됩니다 */',
+'group-bureaucrat.js' => '/* 이 자바스크립트 설정은 사무관에만 적용됩니다 */',
 
 # Metadata
 'notacceptable' => '클라이언트에서 인식 가능한 출력 포맷이 없습니다.',
@@ -3314,6 +3361,9 @@ Variants for Chinese language
 'exif-compression-2' => 'CCITT 그룹-3 1차원 수정 허프먼 반복 길이 부호화',
 'exif-compression-3' => 'CCITT 그룹-3 팩스 인코딩',
 'exif-compression-4' => 'CCITT 그룹-4 팩스 인코딩',
+'exif-compression-6' => 'JPEG (오래됨)',
+'exif-compression-8' => 'Deflate (Adobe;어도비)',
+'exif-compression-32773' => 'PackBits (매킨토시 RLE)',
 
 'exif-copyrighted-true' => '저작권의 보호를 받음',
 'exif-copyrighted-false' => '퍼블릭 도메인',
@@ -3631,7 +3681,7 @@ $5
 
 # Auto-summaries
 'autosumm-blank' => '문서를 비움',
-'autosumm-replace' => '문서 내용을 ‘$1’으로 교체',
+'autosumm-replace' => '문서 내용을 ‘$1’으로 바꿈',
 'autoredircomment' => '[[$1]] 문서로 넘겨주기',
 'autosumm-new' => '새 문서: $1',
 
@@ -3710,6 +3760,8 @@ $5
 'version-entrypoints' => 'URL 진입점',
 'version-entrypoints-header-entrypoint' => '진입점',
 'version-entrypoints-header-url' => 'URL',
+'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath 문서 경로]',
+'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath 스크립트 경로]',
 
 # Special:FilePath
 'filepath' => '파일 경로',
index 0ce1c28..c69f6c8 100644 (file)
@@ -453,6 +453,7 @@ $2',
 'createaccount' => 'Джангы къошулуучуну регистрация эт',
 'gotaccount' => 'Тергеу джазыуугъуз (аккаунтугъуз) энди бармыды? $1.',
 'gotaccountlink' => 'Кир',
+'userlogin-resetlink' => 'Кирир ючюн билгилеригизни унутхан этгенмисиз?',
 'createaccountmail' => 'e-mail бла',
 'createaccountreason' => 'Чурум:',
 'badretype' => 'Джазгъан паролларыгъыз бир-бирине келишмейдиле.',
@@ -661,6 +662,7 @@ $2',
 'note' => "'''Белги:'''",
 'previewnote' => "'''Бу къуру ал къарауду.'''
 Сиз этген тюрлениуле алкъын сакъланмагъандыла!",
+'continue-editing' => 'Тюрлендириуню бардырыгъыз',
 'previewconflict' => 'Бу ал къарау, башындагъы тюрлендириу терезеде текстни сакъланнганча кёргюзеди.',
 'session_fail_preview' => "'''Джарсыугъа, сессияны идентификаторуну тас этгени себебли, сервер сизни тюрлендириуюгюзни сакълаталмагъанды.
 Энтдада кёрюгюз.
@@ -1279,7 +1281,7 @@ $1 {{PLURAL:$1|символдан|символладан}} кеб болургъ
 'nchanges' => '$1 {{PLURAL:$1|тюрлениу|тюрлениу}}',
 'recentchanges' => 'Ахыр тюрлениуле',
 'recentchanges-legend' => 'Ахыр тюрлениулени джарашдырыулары',
-'recentchangestext' => 'Тюбюнде, Википедияда этилген ахыр тюрлениуле хронология бла тизилиб турадыла.',
+'recentchanges-summary' => 'Тюбюнде, Википедияда этилген ахыр тюрлениуле хронология бла тизилиб турадыла.',
 'recentchanges-feed-description' => 'Викиде бу лентада тюрлениулени кёзде тут.',
 'recentchanges-label-newpage' => 'Бу тюрлендириу бла джангы бет къуралгъанды',
 'recentchanges-label-minor' => 'Бу гитче тюрлениудю',
index 64ea2d5..e98241e 100644 (file)
@@ -575,7 +575,7 @@ wat en Üvverschrefte nit erlaub es.
 Et künnt ussinn, wie ene InterWikiLink,
 dat jeiht ävver nit.
 Muss De repareere.',
-'perfcached' => 'Di Daate heh noh kumme usem Zweschespeicher (<l lang="en">cache</i>) un künnte nit mieh janz de allerneuste sin.
+'perfcached' => 'Di Daate heh noh kumme usem Zweschespeicher (cache) un künnte nit mieh janz de allerneuste sin.
 {{PLURAL:$1|Bloß ein Antwoot es|Nit mieh wi $1 Antwoote sin|Kein Antwoot es}} doh faßjehallde un ze han.',
 'perfcachedts' => 'De Daate heenoh kumme usem Zweschespeicher (Cache) un woodte aam $2 öm $3 opjenumme. Se künnte nit janz de allerneuste sin.
 {{PLURAL:$4|Bloß ein Antwoot es|Nit mieh wi $4 Antwoote sind|Kein Antwoot es}} doh ze han.',
@@ -984,7 +984,7 @@ denk dran, dat ene Metmaacher eije Dateie för et Ussinn han kann, un dat die me
 aanfange dun, alsu etwa: {{ns:user}}:Name/vector.css, un {{ns:user}}:Name/vector.js heiße.',
 'updated' => '(Aanjepack)',
 'note' => "'''Opjepass:'''",
-'previewnote' => "'''Heh kütt nor de Vör-Aansich - Ding Änderunge sin noch nit jesechert!'''",
+'previewnote' => "'''Heh kütt nor de Vör-Aansich  Ding Änderunge sin noch nit jesechert!'''",
 'previewconflict' => 'Heh die Vör-Aansich zeich dä Enhald vum bovvere Texfeld.
 Esu wööd dä Atikkel ussinn, wann De n jetz avspeichere däts.',
 'session_fail_preview' => "'''Schad: Ding Änderunge kunnte mer su nix met aanfange.
@@ -1261,7 +1261,7 @@ Donn de Version makeere bes wohen (inklusive) dat övverdraare wäde sull. Donn
 'mergelogpagetext' => 'Dat hee is dat Logboch fun de zesammejelaate Versione fun Sigge',
 
 # Diffs
-'history-title' => 'Liss met Versione vun „$1“',
+'history-title' => 'Älder Versione vun dä Sigg „$1“',
 'difference-multipage' => '(Ongerscheide zwesche Sigge)',
 'lineno' => 'Reih $1:',
 'compareselectedversions' => 'Dun de markeete Version verjliche',
@@ -1629,7 +1629,7 @@ Ene zohfällesch ußjewörfelte Schlößel, dää De nämme künnß, wöhr: <cod
 'nchanges' => '{{PLURAL:$1|Ein Änderung|$1 Änderunge|Kein Änderung}}',
 'recentchanges' => 'Neuste Änderunge',
 'recentchanges-legend' => 'Enstellunge',
-'recentchangestext' => 'Op dä Sigg hee sin de neuste Änderunge am Wiki opjeliss.',
+'recentchanges-summary' => 'Op dä Sigg hee sin de neuste Änderunge am Wiki opjeliss.',
 'recentchanges-feed-description' => 'Op dämm Abonnomang-Kannal (<i lang="en">Feed</i>) kannze de {{int:recentchanges}} aam Wiki en Laif un en Färve metloore.',
 'recentchanges-label-newpage' => 'Heh di Sigg es neu dobei jekumme met dä Änderung',
 'recentchanges-label-minor' => 'Heh dat es en Mini-Änderung',
@@ -2660,8 +2660,9 @@ Drag bei „Aanlass“ ene möchlichs jenaue Jrund en, wöröm dat Sperre passee
 'badipaddress' => 'Wat De do jeschrevve häs, dat es kein öntlije IP-Adress.',
 'blockipsuccesssub' => 'De IP-Adress es jetz jesperrt',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] es jetz jesperrt.
-Luur op [[Special:BlockList|de Liss met jesperrte IP_Adresse]] wann de ne Üvverbleck üvver de Sperre han wells,
-un och wann De se ändere wells.',
+<br />
+Luur op [[Special:BlockList|{{int:ipblocklist}}]] wann de ene Övverbleck övver de Sperre han wells,
+un och, wann De se ändere wells.',
 'ipb-blockingself' => 'Do bes om Wääsch, Desh sellver ze sperre. Wells De dat?',
 'ipb-confirmhideuser' => 'Do bes om bäßte Wääsch ene Metaacher ze sperre met „Vershteishe“ ußjewählt.
 Domet weed dä Name vun däm Metmaacher uß alle Leßte un Logbööscher eruß jelohße.
@@ -2713,8 +2714,8 @@ Wells De dat?',
 'blocklog-showsuppresslog' => 'Heh dä Metmaacher es ald fröjer jeshperrt un vershtoche woode. Dat Logbooch vum Metmaacher-Vershteishe onge künnt doh jät mieh zoh saare.',
 'blocklogentry' => 'hät „[[$1]]“ fö de Zick vun $2 jesperrt. $3',
 'reblock-logentry' => 'hät di Sperr för dä „[[$1]]“ met dä Duuer fun $2 $3 jeändert',
-'blocklogtext' => 'Heh es dat Logboch för et Metmaacher Sperre un Freijevve.
-Automatich jesperrte IP-Adresse sin nit heh, ävver en de [[Special:BlockList|{{int:ipblocklist}}]] ze finge.',
+'blocklogtext' => 'Heh es et Logboch övver et Metmaacher-Sperre un -Freijevve vun Hand.
+Automattesch jesperrte <i lang="en>IP</i>-Addräße sin nit heh, ävver en de [[Special:BlockList|{{int:ipblocklist}}]] ze fenge.',
 'unblocklogentry' => 'Metmaacher „$1“ freijejovve',
 'block-log-flags-anononly' => 'nor de namelose Metmaacher sperre',
 'block-log-flags-nocreate' => 'neu Metmaacher aanlääje es verbodde',
index dc78c8d..a82f0cf 100644 (file)
@@ -12,6 +12,7 @@
  * @author Erdal Ronahi
  * @author Ferhengvan
  * @author George Animal
+ * @author Ghybu
  * @author Gomada
  * @author Kaganer
  * @author Krinkle
@@ -211,7 +212,7 @@ $messages = array(
 'cancel' => 'Betalkirin',
 'moredotdotdot' => 'Bêhtir...',
 'mypage' => 'Rûpela min',
-'mytalk' => 'Rûpela gotûbêja min',
+'mytalk' => 'Gotûbêja min',
 'anontalk' => "Gotûbêj ji bo vê IP'ê",
 'navigation' => 'Navîgasyon',
 'and' => '&#32;û',
@@ -272,7 +273,7 @@ $messages = array(
 'unprotectthispage' => 'Parastina vê rûpelê rake',
 'newpage' => 'Rûpela nû',
 'talkpage' => 'Vê rûpelê gotûbêj bike',
-'talkpagelinktext' => 'Nîqaş',
+'talkpagelinktext' => 'gotûbêj',
 'specialpage' => 'Rûpela taybet',
 'personaltools' => 'Amûrên kesane',
 'postcomment' => 'Beşeke nû',
@@ -576,6 +577,7 @@ Eger account\'a bikarhêneran şaşî hate çêkirin, guhdare vê peyamê meke.'
 'showlivepreview' => 'Pêşdîtina zindî',
 'showdiff' => 'Guherandinê nîşan bide',
 'anoneditwarning' => "'''Hişyarî:''' Tu netêketî yî! Navnîşana IP'ya te wê di dîroka guherandina vê rûpelê de bê tomarkirin.",
+'anonpreviewwarning' => "''Tu ne têketî yî. Tomarkirin wê navnîşana IP'ya te di dîroka guhertinan de nîşan bide.''",
 'missingsummary' => "<span style=\"color:#990000;\">'''Zanibe:'''</span> Te nivîsekî kurt ji bo guherandinê ra nenivîsand. Eger tu niha carekî din li Tomar xê, guherandinê te vê nivîsekî kurt yê were tomarkirin.",
 'missingcommenttext' => 'Ji kerema xwe kurteya naverokê li jêr binivisîne.',
 'missingcommentheader' => "<span style=\"color:#990000;\">'''Zanibe:'''</span> Te sernavek nenivîsandiye. Heke tu niha carekî din li ser ''tomar bike'' bitikînî, ev guherandina vê sernavê wê were tomarkirin.",
@@ -641,7 +643,9 @@ Astengkirina dawî bi referansa li jêr hatiye piştrastkirin:',
 'updated' => '(Hate rojanekirin)',
 'note' => "'''Nîşe:'''",
 'previewnote' => "'''Ji bîr neke ku ev bi tenê çavdêriyek e, ev rûpel hîn nehatiye tomarkirin!'''",
+'continue-editing' => 'Guhertinê bidomîne',
 'editing' => 'Biguherîne: "$1"',
+'creating' => '$1 tê çêkirin',
 'editingsection' => 'Tê guherandin: $1 (beş)',
 'editingcomment' => '$1 (şîrove) tê guherandin.',
 'editconflict' => 'Têkçûna guherandinan: $1',
@@ -660,6 +664,8 @@ Heke tu qeyd bikî, hemû guhertinên piştî vê revîzyonê winda dibin.
 Tu soz didî ku te ev bi xwe nivîsand an jî ji çavkaniyekê azad an geliyane ''(public domain)'' girt.
 '''BERHEMÊN MAFÊN WAN PARASTΠ(©) BÊ DESTÛR NEWEŞÎNE!'''",
 'protectedpagewarning' => "'''Hişyarî:  Ev rûpel tê parastin. Bi tenê bikarhênerên ku xwediyên mafên \"koordînatoriyê\" ne, dikarin vê rûpelê biguherînin.'''",
+'semiprotectedpagewarning' => "'''Hişyarî:''' Ev rûpel tê parastin, lewma bes bikarhênerên tomarkirî dikarin vê biguherînin.
+Guhertina herî dawî bi referansa li jêr hatiye piştrastkirin:",
 'templatesused' => 'Şablon di van rûpelan da tê bikaranîn',
 'templatesusedpreview' => 'Şablon yê di vê pêşdîtinê da tên bikaranîn:',
 'templatesusedsection' => 'Şablon yê di vê perçê da tên bikaranîn:',
@@ -676,7 +682,7 @@ Tu soz didî ku te ev bi xwe nivîsand an jî ji çavkaniyekê azad an geliyane
 Zanibe ku nuhçêkirinê vê rûpelê hêja ye ya na.
 Înformasyon li ser jêbirinê vê rûpelê li vir e:",
 'moveddeleted-notice' => 'Ev rûpel hatiye jêbirin.
-The deletion and move log for the page are provided below for reference.',
+Sedema jêbirina rûpelê bi referansa li jêr hatiye piştrastkirin.',
 'log-fulllog' => 'Tevahiya wê bibîne',
 'edit-conflict' => 'Têkçûna guherandinan.',
 'edit-no-change' => 'Guherandina te nehate hesibandin, ji ber ku guherandinên nivîsê tune bûn.',
@@ -791,11 +797,12 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'nextn-title' => '$1 {{PLURAL:$1|encama|encamên}} pêştir',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Vebijartinên lêgerrînê',
+'searchmenu-exists' => "'''Rûpeleke bi navê \"[[:\$1]]\" li ser vê wîkiyê heye.'''",
 'searchmenu-new' => 'Rûpela "[[:$1]]" li ser vê derê çêke!',
 'searchhelp-url' => 'Help:Alîkarî',
 'searchprofile-articles' => 'Rûpelên naverokê',
 'searchprofile-project' => 'Rûpelên alîkariyê û projeyê',
-'searchprofile-images' => 'Multimedia',
+'searchprofile-images' => 'Multîmedya',
 'searchprofile-everything' => 'Her tişt',
 'searchprofile-advanced' => 'Pêşketî',
 'searchprofile-articles-tooltip' => 'Di $1 da lêbigere',
@@ -816,10 +823,11 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'searchall' => 'hemû',
 'showingresults' => "{{PLURAL:$1|Encamek|'''$1''' encam}}, bi #'''$2''' dest pê dike.",
 'showingresultsnum' => "{{PLURAL:$3|'''1'''|'''$3'''}} encam, bi #<b>$2</b> dest pê dike.",
+'showingresultsheader' => "{{PLURAL:$5|Encam '''$1''' ên '''$3'''|Encam '''$1 - $2''' ên '''$3'''}} ji bo '''$4'''",
 'search-nonefound' => 'Ti rûpelên wek ya daxwazkirî nînin.',
 'powersearch' => 'Lê bigere',
 'powersearch-legend' => 'Lê bigere',
-'powersearch-ns' => "Di namespace'an da lêbigere:",
+'powersearch-ns' => 'Di valahiya navan de lêbigere:',
 'powersearch-redir' => "Lîsteya redirect'an",
 'powersearch-field' => 'Bigere li',
 'powersearch-togglelabel' => 'Kontrol bike:',
@@ -1142,6 +1150,8 @@ Xêra xwe navekî din bibîne.",
 'linkstoimage' => 'Di van rûpelan de lînkek ji vî wêneyî re heye:',
 'nolinkstoimage' => 'Rûpelekî ku ji vî wêneyî re girêdankê çêdike nîne.',
 'linkstoimage-redirect' => '$1 (beralîkirina pelê) $2',
+'sharedupload-desc-here' => 'Ev pel ji $1 û dibe ku ji aliyê projeyên din ve jî hatibe bikaranîn.
+Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
 'uploadnewversion-linktext' => 'Versyonekî nû yê vê datayê barbike',
 'shared-repo-from' => 'ji $1',
 
@@ -1197,7 +1207,7 @@ Xêra xwe navekî din bibîne.",
 'statistics-header-hooks' => 'Statîstîkên din',
 'statistics-articles' => 'Rûpelên naverokê',
 'statistics-pages' => 'Rûpel',
-'statistics-pages-desc' => 'Hemû rûpelên di vê wîkiyê de, bi hemû rûpelên nîqaş, beralîkirin, hwd.',
+'statistics-pages-desc' => 'Hemû rûpelên di vê wîkiyê de, bi hemû rûpelên gotûbêj, beralîkirin, hwd.',
 'statistics-files' => 'Wêneyên barkirî',
 'statistics-views-total' => 'Hemû nîşandan',
 'statistics-users' => '[[Special:ListUsers|Bikarhênerên tomarkirî]]',
@@ -1545,7 +1555,7 @@ Ji bo jêbirinan û çêkirinên nuh ra, xêra xwe di [[Special:Log/delete|reşa
 'sp-contributions-deleted' => 'Guherandinên bikarhênerekî yê jêbirî',
 'sp-contributions-uploads' => 'yên barkirî',
 'sp-contributions-logs' => 'têketin',
-'sp-contributions-talk' => 'nîqaş',
+'sp-contributions-talk' => 'gotûbêj',
 'sp-contributions-userrights' => 'Îdarekirina mafên bikarhêneran',
 'sp-contributions-search' => 'Li beşdariyan bigere',
 'sp-contributions-username' => 'Adresê IP ya navî bikarhêner:',
@@ -1701,7 +1711,7 @@ da bikarî navê wê rûpelê biguherînî.',
 'articleexists' => 'Rûpela bi vî navî heye, an navê ku te hilbijart derbas nabe. Navekî din hilbijêre.',
 'cantmove-titleprotected' => 'Tu nikanê vê rûpelê bervê vê cihê bigerînê ji ber ku sernava nuh tê parastin ji bo çêkirinê',
 'movedto' => 'bû',
-'movetalk' => "Rûpela '''gotûbêj'''a wê jî bigerîne, eger gengaz be.",
+'movetalk' => "Heke gengaz be, rûpela '''gotûbêj'''a wê jî bigerîne.",
 'movepage-page-exists' => 'Rûpela $1 berê heye û ew nikane otomatîk were jêbirin.',
 'movepage-page-moved' => 'Rûpela $1 çû cihê $2.',
 'movepage-page-unmoved' => 'Rûpela $1 nikanî çûba ciha $2.',
@@ -1758,7 +1768,7 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Rûpela min',
 'tooltip-pt-anonuserpage' => 'The user page for the ip you',
-'tooltip-pt-mytalk' => 'Rûpela min a gotûbêjê',
+'tooltip-pt-mytalk' => 'Gotûbêja min',
 'tooltip-pt-preferences' => 'Tercîhên min',
 'tooltip-pt-watchlist' => 'The list of pages you',
 'tooltip-pt-mycontris' => 'Lîsteya beşdariyên min',
@@ -1831,7 +1841,7 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'pageinfo-header-watchlist' => 'Lîsteya şopandinê',
 'pageinfo-header-views' => 'Dîtin',
 'pageinfo-subjectpage' => 'Rûpel',
-'pageinfo-talkpage' => 'Rûpela nîqaşê',
+'pageinfo-talkpage' => 'Rûpela gotûbêjê',
 'pageinfo-watchers' => 'Hejmara kesên dişopînin',
 'pageinfo-edits' => 'Hejmara guherandinan',
 'pageinfo-views' => 'Hejmara dîtinê',
@@ -1987,9 +1997,9 @@ Lê eger ev *ne* tu bû, li lînkê netikîne. Ev e-nameya di rojê $4 da netê
 
 # Delete conflict
 'deletedwhileediting' => 'Hîşyar: Piştî te guherandinê xwe dest pê kir ev rûpela hate jêbirin!',
-'confirmrecreate' => "Bikarhêner [[User:$1|$1]] ([[User talk:$1|nîqaş]]) vê rûpelê jêbir, piştî te destpêkir bi guherandinê. Sedemê jêbirinê ev bû:
+'confirmrecreate' => "Piştî te dest bi guherandinê kir, bikarhêner [[User:$1|$1]] ([[User talk:$1|gotûbêj]]) ev rûpel jê bir. Sedema jêbirinê ev bû:
 : ''$2''
-Xêra xwe zanibe ku tu bi rastî dixwazê vê rûpelê dîsa çêkê",
+Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 'recreate' => 'Dîsa çêke',
 
 # action=purge
@@ -2037,7 +2047,7 @@ Xêra xwe zanibe ku tu bi rastî dixwazê vê rûpelê dîsa çêkê",
 'watchlisttools-edit' => 'Lîsteya şopandinê bibîne û biguherîne',
 
 # Signatures
-'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|nîqaş]])',
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|gotûbêj]])',
 
 # Special:Version
 'version' => 'Versiyon',
index e8e755a..9e17935 100644 (file)
 
 $fallback = 'ru';
 
+$namespaceNames = array(
+       NS_SPECIAL          => 'Отсасян',
+       NS_TALK             => 'Сёрнитанiн',
+       NS_USER             => 'Пырысь',
+       NS_USER_TALK        => 'Пырыськӧд_сёрнитанiн',
+       NS_FILE             => 'Файл',
+       NS_FILE_TALK        => 'Файл_донъялӧм',
+       NS_MEDIAWIKI        => 'МедиаВики',
+       NS_MEDIAWIKI_TALK   => 'МедиаВики_донъялӧм',
+       NS_TEMPLATE         => 'Шаблон',
+       NS_TEMPLATE_TALK    => 'Шаблон_донъялӧм',
+);
+
+$namespaceAliases = array(
+       // Backward compat. Fallbacks from 'ru'.
+       'Медиа'                              => NS_MEDIA,
+       'Служебная'                          => NS_SPECIAL,
+       'Обсуждение'                         => NS_TALK,
+       'Участник'                           => NS_USER,
+       'Обсуждение_участника'               => NS_USER_TALK,
+       'Обсуждение_{{GRAMMAR:genitive|$1}}' => NS_PROJECT_TALK,
+       'Файл'                               => NS_FILE,
+       'Обсуждение_файла'                   => NS_FILE_TALK,
+       'Обсуждение_MediaWiki'               => NS_MEDIAWIKI_TALK,
+       'Шаблон'                             => NS_TEMPLATE,
+       'Обсуждение_шаблона'                 => NS_TEMPLATE_TALK,
+       'Справка'                            => NS_HELP,
+       'Обсуждение_справки'                 => NS_HELP_TALK,
+       'Категория'                          => NS_CATEGORY,
+       'Обсуждение_категории'               => NS_CATEGORY_TALK
+);
+
 $messages = array(
 # Dates
 'sunday'        => 'вежалун',
index 65d0914..9b8b641 100644 (file)
@@ -60,31 +60,51 @@ $namespaceAliases = array(
 
 $specialPageAliases = array(
        'Allmessages'               => array( 'OllMessajow' ),
-       'Allpages'                  => array( 'OllFolennow' ),
-       'Ancientpages'              => array( 'FolennowCoth' ),
+       'Allpages'                  => array( 'OllFolednow' ),
+       'Ancientpages'              => array( 'FolednowKoth' ),
+       'Badtitle'                  => array( 'TitelDrog' ),
+       'Blankpage'                 => array( 'FolenWag' ),
        'Block'                     => array( 'Lettya' ),
-       'Categories'                => array( 'Classys' ),
+       'Booksources'               => array( 'PednfentynyowLyver' ),
+       'Categories'                => array( 'Klassys' ),
+       'ChangeEmail'               => array( 'ChanjyaEbost' ),
+       'ChangePassword'            => array( 'ChanjyaGerTremena' ),
        'Contributions'             => array( 'Kevrohow' ),
+       'CreateAccount'             => array( 'FormyaAkont' ),
+       'DeletedContributions'      => array( 'KevrohowDiles' ),
+       'EditWatchlist'             => array( 'ChanjyaRolGolyas' ),
        'Emailuser'                 => array( 'EbostyaDevnydhyer' ),
-       'Export'                    => array( 'Esperthy' ),
-       'Import'                    => array( 'Ymperthy' ),
+       'Export'                    => array( 'Esperthi' ),
+       'Import'                    => array( 'Ymperthi' ),
+       'MIMEsearch'                => array( 'HwilansMIME' ),
        'Movepage'                  => array( 'GwayaFolen' ),
        'Mycontributions'           => array( 'OwHevrohow' ),
        'Mypage'                    => array( 'OwFolen' ),
        'Mytalk'                    => array( 'OwHows' ),
-       'Newpages'                  => array( 'FolennowNowyth' ),
-       'Preferences'               => array( 'Dewisyansow' ),
+       'Myuploads'                 => array( 'OwUghkargansow' ),
+       'Newimages'                 => array( 'RestrednowNowyth' ),
+       'Newpages'                  => array( 'FolednowNowyth' ),
+       'PasswordReset'             => array( 'DassetyaGerTremena' ),
+       'Preferences'               => array( 'Dowisyansow' ),
        'Randompage'                => array( 'FolenDreJons' ),
        'Recentchanges'             => array( 'Chanjyow_a-dhiwedhes' ),
-       'Search'                    => array( 'Whilans' ),
-       'Specialpages'              => array( 'FolennowArbennek' ),
-       'Upload'                    => array( 'Ughcarga' ),
+       'Search'                    => array( 'Hwilas' ),
+       'Specialpages'              => array( 'FolednowArbednek' ),
+       'Uncategorizedcategories'   => array( 'KlassysHebKlass' ),
+       'Uncategorizedimages'       => array( 'RestrednowHebKlass' ),
+       'Uncategorizedpages'        => array( 'FolednowHebKlass' ),
+       'Uncategorizedtemplates'    => array( 'SkantlynsHebKlass' ),
+       'Upload'                    => array( 'Ughkarga' ),
+       'Userlogin'                 => array( 'Omgelmi' ),
+       'Userlogout'                => array( 'Digelmi' ),
+       'Userrights'                => array( 'GwiryowDevnydhyer' ),
        'Version'                   => array( 'Versyon' ),
-       'Wantedcategories'          => array( 'ClassysWhansus' ),
-       'Wantedfiles'               => array( 'RestrennowWhansus' ),
-       'Wantedpages'               => array( 'FolennowWhansus' ),
-       'Wantedtemplates'           => array( 'ScantlynsWhansus' ),
+       'Wantedcategories'          => array( 'KlassysHwansus' ),
+       'Wantedfiles'               => array( 'RestrednowHwansus' ),
+       'Wantedpages'               => array( 'FolednowHwansus' ),
+       'Wantedtemplates'           => array( 'SkantlynsHwansus' ),
        'Watchlist'                 => array( 'Rol_golyas' ),
+       'Whatlinkshere'             => array( 'OwKevrednaObma' ),
 );
 
 $messages = array(
@@ -637,7 +657,7 @@ Gwrewgh assaya rag-gorra agas govyn gans ''all:'' rag hwilas en pub teller (a-ba
 'nchanges' => '$1 {{PLURAL:$1|chanj|chanj}}',
 'recentchanges' => 'Chanjyow a-dhiwedhes',
 'recentchanges-legend' => 'Etholyow an chanjyow a-dhiwedhes',
-'recentchangestext' => "War'n folen-ma y hellowgh hwi sewya an chanjyow diwettha eus gwres dhe'n wiki.",
+'recentchanges-summary' => "Sewya an chanjyow diwettha eus dhe'n wiki war'n folen-ma.",
 'recentchanges-feed-description' => "Sewya an chanjyow diwettha dhe'n wiki e'n feed-ma.",
 'recentchanges-label-newpage' => 'An chanj-ma a wrug gwruthyl folen nowyth',
 'recentchanges-label-minor' => 'Chanj bian yw hebma',
index e69d5e7..47cb98d 100644 (file)
@@ -9,10 +9,25 @@
  *
  * @author AidaBishkek
  * @author Aidabishkek
+ * @author Amire80
  * @author Muratjumashev
  * @author Ztimur
  */
 
+$namespaceNames = array(
+       NS_MEDIA            => 'Медиа',
+       NS_SPECIAL          => 'Атайын',
+       NS_TALK             => 'Баарлашуу',
+       NS_USER             => 'Колдонуучу',
+       NS_USER_TALK        => 'Колдонуучунун_баарлашуулары',
+       NS_PROJECT_TALK     => '$1_баарлашуу',
+       NS_FILE             => 'Файл',
+       NS_MEDIAWIKI        => 'MediaWiki',
+       NS_TEMPLATE         => 'Калып',
+       NS_HELP             => 'Жардам',
+       NS_CATEGORY         => 'Категория',
+);
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Шилтемелердин алдын сызуу:',
@@ -337,7 +352,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'noarticletext' => "Азыр бул баракта текст жок.
 Сиз [[Special:Search/{{PAGENAME}}|ушул аталыш менен баракты изде]] башка барактарда 
 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тийиштүү жазууларды таба аласыз],
-же '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} ошондой аталыш менен барак ача аласыз].'''</span>.",
+же '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} ошондой аталыш менен барак ача аласыз]'''</span>.",
 'noarticletext-nopermission' => 'Азыр бул баракта текст жок.
 Сиз башка барактардан [[Special:Search/{{PAGENAME}}|ушул аталыш менен баракты издөө]] салып,
 же <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тийиштүү жазууларды таба аласыз]</span>.',
@@ -474,7 +489,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'nchanges' => '$1 {{PLURAL:$1|өзгөрүү|өзгөрүү}}',
 'recentchanges' => 'Соңку өзгөрүүлөр',
 'recentchanges-legend' => 'Соңку өзгөртүүлөрдүн ырастоолору',
-'recentchangestext' => 'Уикидеги соңку өзгөрүүлөрдү ушул барактан көзөмөлдө.',
+'recentchanges-summary' => 'Уикидеги соңку өзгөрүүлөрдү ушул барактан көзөмөлдө.',
 'recentchanges-feed-description' => 'Ушул агымдагы уикидеги соңку өзгөрүүлөрдү көзөмөлдө.',
 'recentchanges-label-newpage' => 'Бул оңдоо жаңы баракты ачты',
 'recentchanges-label-minor' => 'Бул майда оңдоо',
index cf8af41..3059c11 100644 (file)
@@ -802,7 +802,7 @@ Titulus: '''({{int:cur}})''' = dissimilis ab emendatione novissima,
 'revertmerge' => 'Inconfundere',
 
 # Diffs
-'history-title' => 'Historia paginae "$1"',
+'history-title' => '$1: Historia paginae',
 'lineno' => 'Linea $1:',
 'compareselectedversions' => 'Conferre emendationes selectas',
 'showhideselectedversions' => 'Monstrare/celare emendationes selectas',
@@ -1073,7 +1073,7 @@ Si vis id dare, opera tua tibi ascribentur.',
 'nchanges' => '$1 {{PLURAL:$1|mutatio|mutationes}}',
 'recentchanges' => 'Nuper mutata',
 'recentchanges-legend' => 'Indicis paginarum nuper mutatarum praeferentiae',
-'recentchangestext' => 'Inspice mutationes recentes huic vici in hac pagina.',
+'recentchanges-summary' => 'Inspice mutationes recentes huic vici in hac pagina.',
 'recentchanges-feed-description' => 'Nuper mutata Viciae hoc in fluxu observare.',
 'recentchanges-label-newpage' => 'Haec recensio paginam novam creavit',
 'recentchanges-label-minor' => 'Haec est recensio minor',
index eacc492..a734e89 100644 (file)
@@ -169,7 +169,7 @@ $specialPageAliases = array(
 
 $magicWords = array(
        'redirect'                => array( '0', '#DIRIJAR', '#DIRECCIÓN', '#REDIRECCIÓN', '#REDIRECCION', '#REDIRECT' ),
-       'fullpagename'            => array( '1', 'NOMBREDEHOJACOMPLETA', 'NOMBREDEPÁGINACOMPLETA', 'NOMBREDEPAGINACOMPLETA', 'NOMBREDEPÁGINAENTERA', 'NOMBREDEPAGINAENTERA', 'FULLPAGENAME' ),
+       'fullpagename'            => array( '1', 'NOMBREDEHOJACOMPLETA', 'NOMBREDEPÁGINACOMPLETA', 'NOMBREDEPAGINACOMPLETA', 'NOMBREDEPÁGINAENTERA', 'NOMBREDEPAGINAENTERA', 'NOMBRECOMPLETODEPÁGINA', 'NOMBRECOMPLETODEPAGINA', 'FULLPAGENAME' ),
        'subpagename'             => array( '1', 'NOMBREDEHOJICA', 'NOMBREDESUBPAGINA', 'NOMBREDESUBPÁGINA', 'SUBPAGENAME' ),
        'msg'                     => array( '0', 'MSJ:', 'MSG:' ),
        'img_left'                => array( '1', 'cierda', 'izquierda', 'izda', 'izq', 'left' ),
@@ -740,7 +740,7 @@ Las búsquedas producen más o munco a buscar biervos comunes como «la» o «de
 'nchanges' => '$1 {{PLURAL:$1|trocamiento|trocamientos}}',
 'recentchanges' => 'Trocamientos freskos',
 'recentchanges-legend' => 'Opciones encima de los trocamientos frescos',
-'recentchangestext' => 'Perseguid en esta hoja, los trocamientos de alcabo realizados en la Viki.',
+'recentchanges-summary' => 'Perseguid en esta hoja, los trocamientos de alcabo realizados en la Viki.',
 'recentchanges-feed-description' => 'Perseguir los trocamientos más nuevos en el viki en este feed.',
 'recentchanges-label-minor' => 'Esta es un trocamiento chiquitico',
 'rcnote' => "Debaxo {{PLURAL:$1|ay '''1''' trocamiento realizado|están los dal cabo '''$1''' trocamientos realizados}} en  {{PLURAL:$2|el dal cabo día|los dal cabo '''$2''' días}}, hasta el $4, $5.",
index 017884c..eee501c 100644 (file)
@@ -50,12 +50,14 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'All_Systemmessagen' ),
        'Allpages'                  => array( 'All_Säiten' ),
        'Ancientpages'              => array( 'Al_Säiten' ),
+       'Badtitle'                  => array( 'Falschen_Titel' ),
        'Blankpage'                 => array( 'Eidel_Säit' ),
        'Block'                     => array( 'Spären' ),
        'Blockme'                   => array( 'Mech_spären' ),
        'Booksources'               => array( 'Bicher_mat_hirer_ISBN_sichen' ),
        'BrokenRedirects'           => array( 'Futtis_Viruleedungen' ),
        'Categories'                => array( 'Kategorien' ),
+       'ChangeEmail'               => array( 'E-Mailadress_änneren' ),
        'ChangePassword'            => array( 'Passwuert_zrécksetzen' ),
        'ComparePages'              => array( 'Säite_vergkäichen' ),
        'Confirmemail'              => array( 'E-Mail_confirméieren' ),
@@ -73,6 +75,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'Pad_bäi_de_Fichier' ),
        'Import'                    => array( 'Importéieren' ),
        'Invalidateemail'           => array( 'E-Mailadress_net_confirméieren' ),
+       'JavaScriptTest'            => array( 'JavaScript-Test' ),
        'BlockList'                 => array( 'Lëscht_vu_gespaarten_IPen_a_Benotzer' ),
        'LinkSearch'                => array( 'Weblink-Sichen' ),
        'Listadmins'                => array( 'Lëscht_vun_den_Administrateuren' ),
@@ -145,6 +148,7 @@ $specialPageAliases = array(
 
 $magicWords = array(
        'redirect'                => array( '0', '#VIRULEEDUNG', '#WEITERLEITUNG', '#REDIRECT' ),
+       'numberofpages'           => array( '1', 'Säitenzuel', 'SEITENANZAHL', 'NUMBEROFPAGES' ),
        'numberofarticles'        => array( '1', 'Artikelen', 'ARTIKELANZAHL', 'NUMBEROFARTICLES' ),
        'numberoffiles'           => array( '1', 'Fichieren', 'DATEIANZAHL', 'NUMBEROFFILES' ),
        'numberofusers'           => array( '1', 'Benotzerzuel', 'BENUTZERANZAHL', 'NUMBEROFUSERS' ),
@@ -153,18 +157,21 @@ $magicWords = array(
        'namespace'               => array( '1', 'Nummraum', 'NAMENSRAUM', 'NAMESPACE' ),
        'subjectspace'            => array( '1', 'Haaptnummraum', 'HAUPTNAMENSRAUM', 'SUBJECTSPACE', 'ARTICLESPACE' ),
        'subjectpagename'         => array( '1', 'Haaptsäit', 'HAUPTSEITE', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+       'img_thumbnail'           => array( '1', 'Miniatur', 'miniatur', 'thumbnail', 'thumb' ),
        'img_right'               => array( '1', 'riets', 'rechts', 'right' ),
        'img_left'                => array( '1', 'lénks', 'links', 'left' ),
        'img_none'                => array( '1', 'ouni', 'ohne', 'none' ),
        'img_center'              => array( '1', 'zentréiert', 'zentriert', 'center', 'centre' ),
        'img_framed'              => array( '1', 'gerummt', 'gerahmt', 'framed', 'enframed', 'frame' ),
        'img_frameless'           => array( '1', 'net_gerummt', 'rahmenlos', 'frameless' ),
+       'img_page'                => array( '1', 'Säit=$1', 'Säit_$1', 'seite=$1', 'seite $1', 'page=$1', 'page $1' ),
        'img_border'              => array( '1', 'bord', 'rand', 'border' ),
+       'img_top'                 => array( '1', 'uewen', 'top' ),
        'grammar'                 => array( '0', 'GRAMMAIRE', 'GRAMMATIK:', 'GRAMMAR:' ),
        'plural'                  => array( '0', 'PLURAL', 'PLURAL:' ),
        'formatnum'               => array( '0', 'ZUELEFORMAT', 'ZAHLENFORMAT', 'FORMATNUM' ),
        'special'                 => array( '0', 'spezial', 'special' ),
-       'hiddencat'               => array( '1', '__VERSTOPPTE_KATEGORIE__', '__VERSTECKTE_KATEGORIE__', '__WARTUNGSKATEGORIE__', '__HIDDENCAT__' ),
+       'hiddencat'               => array( '1', '__VERSTOPPT_KATEGORIE__', '__VERSTECKTE_KATEGORIE__', '__WARTUNGSKATEGORIE__', '__HIDDENCAT__' ),
 );
 
 $messages = array(
@@ -1012,7 +1019,7 @@ Dir kënnt dësen Ënnerscheed gesinn; Detailer fannt Dir am [{{fullurl:{{#Speci
 'revdelete-no-file' => 'De Fichier deen ugi war gëtt et net.',
 'revdelete-show-file-confirm' => 'Sidd Dir sécher datt Dir déi geläschte Versioun vum Fichier "<nowiki>$1</nowiki>" vum $2 ëm $3 gesi wëllt?',
 'revdelete-show-file-submit' => 'Jo',
-'revdelete-selected' => "'''{{PLURAL:$2|Gewielte Versioun|Gewielte Versioune}} vu(n) '''$1''' :'''",
+'revdelete-selected' => "'''{{PLURAL:$2|Gewielt Versioun|Gewielt Versioune}} vu(n) [[:$1]] :'''",
 'logdelete-selected' => "'''Ausgewielten {{PLURAL:$1|Evenement|Evenementer}} aus dem Logbuch:'''",
 'revdelete-text' => "'''Geläschte Versiounen oder aner geläschte Bestanddeeler sinn net méi ëffentlech zougänglech, si stinn awer weiderhin an der Versiounsgeschicht vun der Säit.'''
 Aner {{SITENAME}}-Administrateure kënnen de geläschten Inhalt oder aner geläschte Bestanddeeler weiderhi gesinn a restauréieren, et sief, et gouf festgeluecht, datt déi Limitatioune vum Accès och fir Administrateure gëllen.",
@@ -1033,7 +1040,7 @@ Aner {{SITENAME}}-Administrateure kënnen de geläschten Inhalt oder aner geläs
 'revdelete-suppress' => 'Grond vum Läschen och fir Administrateure verstoppt',
 'revdelete-unsuppress' => 'Limitatiounen fir restauréiert Versiounen ophiewen',
 'revdelete-log' => 'Grond:',
-'revdelete-submit' => 'Op déi gewielte {{PLURAL:$1|Versioun|Versiounen}} uwenden',
+'revdelete-submit' => 'Op déi gewielt {{PLURAL:$1|Versioun|Versiounen}} uwenden',
 'revdelete-success' => "'''Sichtbarkeet vun de Versioune gouf aktualiséiert.''''",
 'revdelete-failure' => "'''Sichtbarkeet vun der Versioun konnt net aktualiséiert ginn:'''
 $1",
@@ -1103,9 +1110,9 @@ Denkt w.e.g drunn datt d'Navigatiounslinken d'Wiel vun de Versiounen nees zréck
 'mergelogpagetext' => 'Lëscht vun de rezenten Zesummeféierunge vu Versiounsgeschichten.',
 
 # Diffs
-'history-title' => 'Versiounshistorique vun „$1“',
-'difference-title' => 'Ënnerscheed tëschent de Versioune vun "$1"',
-'difference-title-multipage' => 'Ënnerscheed tëschent de Säiten "$1" a(n) "$2"',
+'history-title' => '$1: Historique vun de Versiounen',
+'difference-title' => '$1: Ënnerscheed tëschent de Versiounen',
+'difference-title-multipage' => '$1 a(n) $2: Ënnerscheed tëschent de Säiten',
 'difference-multipage' => '(Ënnerscheed tëschent Säiten)',
 'lineno' => 'Linn $1:',
 'compareselectedversions' => 'Ausgewielte Versioune vergläichen',
@@ -1200,6 +1207,7 @@ Denkt w.e.g drunn datt d'Navigatiounslinken d'Wiel vun de Versiounen nees zréck
 'prefs-beta' => 'Beta-Fonctiounen',
 'prefs-datetime' => 'Datum an Auerzäit',
 'prefs-labs' => '"Labs"-Fonctiounen',
+'prefs-user-pages' => 'Benotzersäiten',
 'prefs-personal' => 'Benotzerprofil',
 'prefs-rc' => 'Rezent Ännerungen',
 'prefs-watchlist' => 'Iwwerwaachungslëscht',
@@ -1461,7 +1469,7 @@ Si muss manner wéi $1 {{PLURAL:$1|Zeechen|Zeechen}} hunn.',
 'nchanges' => '$1 {{PLURAL:$1|Ännerung|Ännerungen}}',
 'recentchanges' => 'Rezent Ännerungen',
 'recentchanges-legend' => 'Optioune vun de rezenten Ännerungen',
-'recentchangestext' => "Op dëser Säit kënnt Dir déi rezent Ännerungen op '''{{SITENAME}}''' gesinn.",
+'recentchanges-summary' => "Op dëser Säit kënnt Dir déi rezent Ännerungen op '''{{SITENAME}}''' gesinn.",
 'recentchanges-feed-description' => 'Verfollegt mat dësem Feed déi rezent Ännerungen op {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Dës Ännerung huet eng nei Säit ugeluecht',
 'recentchanges-label-minor' => 'Dëst ass eng kleng Ännerung',
@@ -1654,8 +1662,8 @@ Wann de Problem weider besteet, dann un de [[Special:ListUsers/sysop|Administrat
 'backend-fail-writetemp' => 'Den temporäre Fichier konnt net geännert ginn.',
 'backend-fail-closetemp' => 'Den temporäre Fichier konnt net zougemaach ginn.',
 'backend-fail-read' => 'De Fichier $1 konnt net geliest ginn.',
-'backend-fail-create' => 'De Fichier $1 konnt net ugeluecht ginn.',
-'backend-fail-maxsize' => 'De Fichier $1 konnt net generéiert gi well e méi grouss ass wéi {{PLURAL:$2|ee Byte|$2 Byten}}.',
+'backend-fail-create' => 'De Fichier $1 konnt net geschriwwe ginn.',
+'backend-fail-maxsize' => 'De Fichier $1 konnt net geschriwwe gi well e méi grouss ass wéi {{PLURAL:$2|ee Byte|$2 Byten}}.',
 'backend-fail-readonly' => 'De Späicher-Backend "$1" kann elo nëmme geliest ginn (read-only). De Grond deen ugi gouf war: "$2"',
 
 # Lock manager
@@ -2881,7 +2889,7 @@ Dëst warscheinlech duerch en externe Link den op der schwaarzer Lëscht (blackl
 'markaspatrolleddiff' => 'Als nogekuckt markéieren',
 'markaspatrolledtext' => 'Dës Säit als nogekuckt markéieren',
 'markedaspatrolled' => 'ass als nogekuckt markéiert',
-'markedaspatrolledtext' => 'Déi gewielte Versioun vu(n) [[:$1]] gouf als nogekuckt markéiert.',
+'markedaspatrolledtext' => 'Déi gewielt Versioun vu(n) [[:$1]] gouf als nogekuckt markéiert.',
 'rcpatroldisabled' => 'Rezent Ännerungskontroll ausgeschalt.',
 'rcpatroldisabledtext' => "D'Kontroll vun de leschten Ännerungen ass elo ausgeschalt.",
 'markedaspatrollederror' => 'Kann net als "nogekuckt" markéiert ginn.',
index 4f71a7f..1ae7c34 100644 (file)
@@ -15,7 +15,9 @@
  * @author Migraghvi
  * @author Namik
  * @author Nemo bis
+ * @author Ole Yves
  * @author Reedy
+ * @author Soul Train
  */
 
 $fallback = 'ru';
@@ -27,14 +29,14 @@ $messages = array(
 'tog-hideminor' => 'Мукьвара хьайи дегишвилера авай гъвечIи дуьзар хъувунар чуьнуьхун',
 'tog-hidepatrolled' => 'Мукьвара хьайи дегишвилера авай къаравулвал авунвай дуьзар хъувунар чуьнуьхун',
 'tog-newpageshidepatrolled' => 'ЦIийи ччинрин сиягьда къаравулвал авунвай ччинар чуьнуьхун',
-'tog-extendwatchlist' => 'Чlехи сиягь килигунин, кутазвай вири дегишунар, амма са эхирбур туш',
+'tog-extendwatchlist' => 'ЧӀехи сиягь килигунин, кутазвай вири дегишунар, амма са эхирбур туш',
 'tog-usenewrc' => 'ЦIийи дегишвилерин сиягь кардик кутун (JavaScript герекзава)',
-'tog-numberheadings' => 'КЬилин цIарариз автоматдаказ номерар эцигун',
+'tog-numberheadings' => 'Кьилин цӀарариз автоматдаказ номерар эцигун',
 'tog-showtoolbar' => 'Дуьзар хъувунин алатрин кьвати къалура (JavaScript)',
 'tog-editondblclick' => 'Ччинар кьве тIампIуналди дуьзар хъувун (JavaScript герекзава)',
 'tog-editsection' => 'Пай [дуьзар хъувун] патал элячIун къалура',
 'tog-editsectiononrightclick' => 'Пайдин кьилинцIардиз эрчIи патан тIампI авуна пайдин дуьзар хъувуниз мумкинвал гун (JavaScript герекзава)',
-'tog-showtoc' => 'КЪенеавайбурун сиягь къалурун (3-й гзаф кьилинцIарар авай ччинар патал)',
+'tog-showtoc' => 'Къенеавайбурун сиягь къалурун (3-й гзаф кьилинцӀарар авай ччинар патал)',
 'tog-rememberpassword' => 'И браузерда зи логин рикlел хуьхь (лап гзаф $1 {{PLURAL:$1|югъ|йикъар}})',
 'tog-watchcreations' => 'За туькIуьрнавай ччинар зи гуьзетунин сиягьдиз алава авун',
 'tog-watchdefault' => 'За дуьзар хъувунвай ччинар зи гуьзетунин сиягьдиз алава авун',
@@ -42,6 +44,7 @@ $messages = array(
 'tog-watchdeletion' => 'За алуднавай ччинар зи гуьзетунин сиягьдиз алава авун',
 'tog-previewontop' => 'Сифтедин килигун дуьзар хъувундин дакIардин вилик эцига',
 'tog-previewonfirst' => 'Дуьзар хъувундиз эгечIайла сифтедин килигун къалурун',
+'tog-enotifwatchlistpages' => 'Зи гуьзетунин ччин масакIа хьайила заз эмейл ракъура.',
 'tog-enotifusertalkpages' => 'КЬилди жуван веревирдрин ччина хьанвай дегишвилерикай э-почтадиз чар ракъурун.',
 'tog-oldsig' => 'Алай къул:',
 'tog-showhiddencats' => 'Чуьнуьхай категорияр къалурун',
@@ -64,55 +67,55 @@ $messages = array(
 'thursday' => 'Хемис',
 'friday' => 'Жуьмя',
 'saturday' => 'Киш',
-'sun' => 'Гья',
+'sun' => 'Гьяд',
 'mon' => 'Исл',
 'tue' => 'Сал',
 'wed' => 'Aрб',
 'thu' => 'Xем',
 'fri' => 'Жум',
 'sat' => 'Киш',
-'january' => 'СÑ\83Ñ\8cл',
-'february' => 'Чила',
-'march' => 'ТIÑ\83л',
-'april' => 'Ð\92ил',
-'may_long' => 'мукал',
-'june' => 'Ð\9aÑ\8cамÑ\83г',
-'july' => 'БаскIум',
-'august' => 'Ð\9dава',
-'september' => 'Ð\9cаÑ\80а',
-'october' => 'Ð\91аÑ\81кlÑ\83м',
-'november' => 'Цlехуьл',
-'december' => 'Фандукl',
-'january-gen' => 'Ð\93Ñ\8cеÑ\80',
-'february-gen' => 'Эхем',
-'march-gen' => 'Ð\98бне',
-'april-gen' => 'Ð\9dава',
-'may-gen' => 'ТӀул',
-'june-gen' => 'Ð\9aÑ\8aамÑ\83г',
-'july-gen' => 'Чиле',
-'august-gen' => 'Ð\9fаÑ\85Ñ\83н',
-'september-gen' => 'Ð\9cаÑ\80а',
-'october-gen' => 'Ð\91аÑ\81кÓ\80Ñ\83м',
-'november-gen' => 'ЦӀехуьл',
-'december-gen' => 'ФaндукӀ',
-'jan' => 'Ð\93Ñ\8cе',
-'feb' => 'Эхе',
-'mar' => 'Ð\98бн',
-'apr' => 'Ð\9dав',
-'may' => 'Тlул',
-'jun' => 'Ð\9aÑ\8aа',
-'jul' => 'Чил',
-'aug' => 'Ð\9fаÑ\85Ñ\83н',
-'sep' => 'Ð\9cаÑ\80',
-'oct' => 'Ð\91аÑ\81',
-'nov' => 'Цlе',
-'dec' => 'Фан',
+'january' => 'гÑ\8cеÑ\80 (Ñ\8fнваÑ\80Ñ\8c)',
+'february' => 'эхен (февраль)',
+'march' => 'ибне (маÑ\80Ñ\82)',
+'april' => 'нава (апÑ\80елÑ\8c)',
+'may_long' => 'тӀул (май)',
+'june' => 'кÑ\8cамÑ\83г (иÑ\8eнÑ\8c)',
+'july' => 'чиле (июль)',
+'august' => 'паÑ\85Ñ\83н (авгÑ\83Ñ\81Ñ\82)',
+'september' => 'маÑ\80а (Ñ\81енÑ\82Ñ\8fбÑ\80Ñ\8c)',
+'october' => 'баÑ\81кÓ\80Ñ\83м (окÑ\82Ñ\8fбÑ\80Ñ\8c)',
+'november' => 'цӀехуьл (ноябрь)',
+'december' => 'фандукl (декабрь)',
+'january-gen' => 'гÑ\8cеÑ\80 (Ñ\8fнваÑ\80диз)',
+'february-gen' => 'эхен (февралдиз)',
+'march-gen' => 'ибне (маÑ\80Ñ\82диз)',
+'april-gen' => 'нава (апÑ\80елдиз)',
+'may-gen' => 'тӀул (майдиз)',
+'june-gen' => 'кÑ\8cамÑ\83г (иÑ\8eндиз)',
+'july-gen' => 'чиле (июлдиз)',
+'august-gen' => 'паÑ\85Ñ\83н (авгÑ\83Ñ\81Ñ\82диз)',
+'september-gen' => 'маÑ\80а (Ñ\81енÑ\82Ñ\8fбÑ\80диз)',
+'october-gen' => 'баÑ\81кÓ\80Ñ\83м (окÑ\82Ñ\8fбÑ\80диз)',
+'november-gen' => 'цӀехуьл (ноябрдиз)',
+'december-gen' => 'фундукӀ (декабрдиз)',
+'jan' => 'гÑ\8cеÑ\80 (Ñ\8fнваÑ\80Ñ\8c)',
+'feb' => 'эхен (февраль)',
+'mar' => 'ибне (маÑ\80Ñ\82)',
+'apr' => 'нава (апÑ\80елÑ\8c)',
+'may' => 'тӀул (май)',
+'jun' => 'кÑ\8cамÑ\83г (иÑ\8eнÑ\8c)',
+'jul' => 'чиле (июль)',
+'aug' => 'паÑ\85Ñ\83н (авгÑ\83Ñ\81Ñ\82)',
+'sep' => 'маÑ\80а (Ñ\81енÑ\82Ñ\8fбÑ\80Ñ\8c)',
+'oct' => 'баÑ\81кÓ\80Ñ\83м (окÑ\82Ñ\8fбÑ\80Ñ\8c)',
+'nov' => 'цӀехуьл (ноябрь)',
+'dec' => 'фандукl (декабрь)',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категория|Категории}}',
 'category_header' => '"$1" категориядин ччинар',
 'subcategories' => 'агъакатегорияр',
-'category-media-header' => '"$1" ÐºÐ°Ñ\82егоÑ\80иÑ\8fда медиа',
+'category-media-header' => '"$1" ÐºÐ°Ñ\82егоÑ\80иÑ\8fдин медиа',
 'category-empty' => "''Алай чIава и категория ичIи я.\"",
 'hidden-categories' => '{{PLURAL:$1|Чуьнуьхай категория |Чуьнуьхай категорияр }}',
 'hidden-category-category' => 'Чуьнуьхай категорияр',
@@ -170,7 +173,7 @@ $messages = array(
 'returnto' => '$1 ччиниз элкъвена хтун',
 'tagline' => '{{SITENAME}} Cайтдихъай',
 'help' => 'Куьмек',
-'search' => 'Жагъурун',
+'search' => 'Жугъурун',
 'searchbutton' => 'Жагъурун',
 'go' => 'ЭлячIун',
 'searcharticle' => 'ЭлячIун',
@@ -200,7 +203,7 @@ $messages = array(
 'specialpage' => 'Куьмекчи ччин',
 'personaltools' => 'Кьилди вичин алатар',
 'postcomment' => 'ЦIйий пай',
-'articlepage' => 'КЪене авайбурун ччиндиз  килигун',
+'articlepage' => 'Къене авайбурун ччиндиз килигун',
 'talk' => 'Веревирд авун',
 'views' => 'Килигунар',
 'toolbox' => 'Алатрин кьвати',
@@ -237,10 +240,10 @@ $messages = array(
 'helppage' => 'Help:Къене авайбур',
 'mainpage' => 'Кьилин ччин',
 'mainpage-description' => 'Кьилин ччин',
-'policy-url' => 'Project:КЪайдаяр',
+'policy-url' => 'Project:Къайдаяр',
 'portal' => 'КIапIалдин портал',
 'portal-url' => 'Project:КIапIалдин портал',
-'privacy' => 'Чинебанвилин политика',
+'privacy' => 'Чинебанвилин сиясат',
 'privacypage' => 'Project:Чинебанвилин политика',
 
 'badaccess' => 'ГЬатунин гъалатlдин',
@@ -299,6 +302,7 @@ $messages = array(
 'missingarticle-rev' => '(жуьре#: $1)',
 'internalerror' => 'КЪенепатан гъалатI',
 'internalerror_info' => 'КЪенепатан гъалатI $1',
+'filerenameerror' => '«$1» файл  «$2» -з тIвар эхцигиз жезвач..',
 'badarticleerror' => 'И ччина и кар кьилиз акъудиз мумкин ттуш.',
 'cannotdelete-title' => ' "$1" ччин алудиз жезвач',
 'badtitle' => 'Ииже текъвер тIвар',
@@ -338,6 +342,7 @@ $messages = array(
 'wrongpasswordempty' => 'Тавакъу ийида, ичIи тушир парол ттур.',
 'mailmypassword' => 'ЦIийи парол Э-мейлдиз къачун',
 'mailerror' => 'Чар ракъурунин гъалатI: $1',
+'emailconfirmlink' => 'Куь электрон почтунин адрес тестикьун.',
 'accountcreated' => 'Аккаунт туькIуьрнава',
 'usernamehasherror' => 'Уртахдин тIвар "диез"дин лишан квачиз хьана кIанзава',
 'loginlanguagelabel' => 'ЧIал: $1',
@@ -398,6 +403,7 @@ $messages = array(
 'showdiff' => 'МасакIавилер къалурун',
 'anoneditwarning' => "'''Дикъет:''' Куьне системадиз жув вуж ятIа лагьанвач. Куь IP-адрес и ччинин масакIавилерин тарихдиз  кхьида.",
 'summary-preview' => 'Сифте килигун паталди:',
+'subject-preview' => 'КьилинцIарцIин сифтедин килигун:',
 'blockedtitle' => 'Иштиракчи блокарнава',
 'blockednoreason' => 'Са себебни ганвач',
 'nosuchsectiontitle' => 'Пай жугъуриз жезвач',
@@ -415,10 +421,13 @@ $messages = array(
 'noarticletext-nopermission' => 'Исятда и  ччина са текстни авач.
 Квевай [[Special:Search/{{PAGENAME}}| и тlвар алай ччин]] муькуь ччинра жугъуриз ва я
 <span class="plainlinks"> [{{fullurl: {{# Special:Log}} | page = {{FULLPAGENAMEE}}}} журналрин талукь тир кхьей затIар жугъуриз] жеда.',
+'blocked-notice-logextract' => 'И уртах алайчIава блокарнава.
+Агъадихъ блокарунин журналдикай эхиримжи кхьинар къалурнава:',
 'previewnote' => "'''Рикlел хуьх хьи, им анжах сифтедин килигун я.'''  
 Куь масакIавилер гьеле хвенвач!",
 'editing' => '$1 Дуьзар хъувун',
 'editingsection' => 'Дуьзар хъувун $1  (пай)',
+'editingcomment' => '$1 дуьзар хъувун (цIийи пай)',
 'editconflict' => 'Дуьзар хъувунрин акьунар: $1',
 'yourtext' => 'Зи текст',
 'yourdiff' => 'Тафаватар',
@@ -515,7 +524,7 @@ $messages = array(
 'history-title' => '$1  -  масакIавилерин тарих',
 'lineno' => 'ЦIар $1:',
 'compareselectedversions' => 'Хкягъай жуьреяр гекъигун',
-'editundo' => 'Ð\93ьич авун',
+'editundo' => 'гьич авун',
 'diff-multi' => '({{PLURAL:$2|Са уртах|$2 уртахар}} патал авунвай {{PLURAL:$1|са арадин жуьре|$1 арадин жуьреяр}} къалурнавач)',
 
 # Search results
@@ -532,7 +541,7 @@ $messages = array(
 'nextn' => 'Гуьгъуьнин {{PLURAL:$1|$1}}',
 'prevn-title' => 'Вилик фейи  $1 {{PLURAL:$1|нетижа|нетижаяр}}',
 'nextn-title' => 'КЪведай $1 {{PLURAL:$1|нетижа|нетижаяр}}',
-'shown-title' => 'Ччина $1 {{PLURAL:$1|нетижа|нетижаяр}} къалура',
+'shown-title' => 'Ччина $1 {{PLURAL:$1|нетижа|нетижа}} къалурун',
 'viewprevnext' => 'Килигун ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Жагъурунин низамарунар',
 'searchmenu-exists' => "'''И вики-проектда \"[[:\$1]]\" тlвар алай ччин ава.'''",
@@ -548,7 +557,7 @@ $messages = array(
 'searchprofile-images-tooltip' => 'Файлар жугъура',
 'searchprofile-everything-tooltip' => 'Вири ччинра къекъуьгъ (веревирдрин ччинар кваз)',
 'searchprofile-advanced-tooltip' => 'Ганвай тlварарин генгвилера къекъуьгъ',
-'search-result-size' => '$1 ({{PLURAL:$2|1 гаф|$2 гафар}})',
+'search-result-size' => '$1 ({{PLURAL:$2|1 гаф|$2 гаф}})',
 'search-result-category-size' => '{{PLURAL:$1|1 элемент|$1 элементар}} ({{PLURAL:$2|1 агъакатегория|$2 агъакатегорияр}}, {{PLURAL:$3|1 файл|$3 файлар}})',
 'search-redirect' => '(рахкъурун $1)',
 'search-section' => '(пай $1)',
@@ -631,13 +640,14 @@ $messages = array(
 'timezoneregion-pacific' => 'Секин чIехи гуьл',
 'prefs-files' => 'Шикил',
 'youremail' => 'Электрон почта:',
-'username' => 'Ишлемишчидин тlар',
+'username' => 'Ишлемишчидин тӀвар',
 'uid' => 'Уртах тайин ийидайди:',
 'yourrealname' => 'Xалис тIвар:',
 'yourlanguage' => 'ЧIалар',
+'yournick' => 'ЦӀийи къул:',
 'yourgender' => 'Жинс:',
 'gender-male' => 'итимдин',
-'gender-female' => 'Фамили',
+'gender-female' => 'папаÑ\80ин',
 'email' => 'E-mail',
 'prefs-help-email' => 'Электрон почтунин адрес кхьи  мажбури туш, амма куьне парол рикIелай ракъурдатIа, ам герек жеда.',
 'prefs-help-email-others' => 'Квевай куь уртахдин, ва я куь веревирдрин ччина элячIун къалурна муькуь уртахар галаз электрон почтадин куькмедалди алакъа хуьз жеда.
@@ -702,9 +712,9 @@ $messages = array(
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|масакIавал|масакIавилер}}',
-'recentchanges' => 'Mукьвара хьайи масакIавилер',
+'recentchanges' => 'Mукьвара хьайи масакӀавилер',
 'recentchanges-legend' => 'Цlийи масакIавилерин низамарунар',
-'recentchangestext' => 'Викида хьанвай эхиримжи масакIавилер и ччина гуьзетун',
+'recentchanges-summary' => 'Викида хьанвай эхиримжи масакIавилер и ччина гуьзетун',
 'recentchanges-feed-description' => 'И хвала викида хьанвай эхиримжи масакIавилер гуьзетун',
 'recentchanges-label-newpage' => 'И дуьзар хъувун  цlийи ччин туькlуьрна',
 'recentchanges-label-minor' => 'Им гъвечlи дуьзар хъувун я',
@@ -773,7 +783,7 @@ $messages = array(
 # img_auth script messages
 'img-auth-accessdenied' => 'Гьахьун къадагъа авунва',
 
-'license' => 'Лицензиа авун:',
+'license' => 'Лицензиярун',
 'license-header' => 'Лицинзиярун',
 'nolicense' => 'ЗатIни хкягънавач',
 'license-nopreview' => '(Сифтедин килигун авайд ттуш)',
@@ -895,7 +905,7 @@ $messages = array(
 'allpagessubmit' => 'ЭлячIун',
 
 # Special:Categories
-'categories' => 'Тlаб',
+'categories' => 'Ð\9aаÑ\82егоÑ\80иÑ\8fÑ\80',
 
 # Special:LinkSearch
 'linksearch' => 'КЪецепатан элячIунар жугъурун',
@@ -1120,7 +1130,7 @@ $messages = array(
 'import-token-mismatch' => 'Сеансдин  ганайбур квахьнава. Тавакъу ийида, мадни алахъун ая.',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Куь ишлемишзавайдин ччин',
+'tooltip-pt-userpage' => 'Куь (уртахдин) ччин',
 'tooltip-pt-mytalk' => 'Куь веревирдрин ччин',
 'tooltip-pt-preferences' => 'Куь низамарунар',
 'tooltip-pt-watchlist' => 'Куьне гуьзетзавай ччинрин сиягь',
@@ -1137,17 +1147,17 @@ $messages = array(
 'tooltip-ca-move' => 'Ччиндин тIвар масакIа авун',
 'tooltip-ca-watch' => 'И ччин куь гуьзетунин сиягьдиз алава авун',
 'tooltip-ca-unwatch' => 'И ччин куь гуьзетунин сиягьдал къахчун',
-'tooltip-search' => 'И гаф жагъурун {{SITENAME}}',
+'tooltip-search' => '{{SITENAME}} къекъуьн',
 'tooltip-search-go' => 'АватIа, гьа и тIвар авай ччиниз элячIун',
-'tooltip-search-fulltext' => 'Къалурай текст авай ччинар жугъура',
+'tooltip-search-fulltext' => 'Къалурай текст авай ччинар жугъурун',
 'tooltip-p-logo' => 'Кьилин ччиниз элячIун',
-'tooltip-n-mainpage' => 'Ð\9aÑ\8cилин Ñ\87Ñ\87индиз Ñ\8dлÑ\8fÑ\87\83н',
+'tooltip-n-mainpage' => 'Кьилин ччиниз элячIун',
 'tooltip-n-mainpage-description' => 'Кьилин ччиндиз элячIун',
 'tooltip-n-portal' => 'Проектдикай,  квевай вуч йийз алакьда, са вуч ятIани гьинай жугъурда',
 'tooltip-n-currentevents' => 'Алай вакъийрин сиягь',
 'tooltip-n-recentchanges' => 'Викида мукьвара хьайи масакIавилерин сиягь',
 'tooltip-n-randompage' => 'Дуьшуьшдин чин ппарун',
-'tooltip-n-help' => 'Жагъурдай чка',
+'tooltip-n-help' => 'Жагъурун патал чка',
 'tooltip-t-whatlinkshere' => 'Иниз элячIзавай викидин вири  ччинрин сиягь',
 'tooltip-t-recentchangeslinked' => 'И ччиндиз элячIзавай ччинра  мукьвара хьайи масакIавилер',
 'tooltip-feed-rss' => 'RSS  хуьрек и чарчиз',
@@ -1248,20 +1258,7 @@ Cиягьда авай анжах (* лишандихъ галаз эгечIза
 'limitall' => 'вири',
 
 # action=purge
-'confirm_purge_button' => 'Э(кхьин)
-
-
-
-
-
-
-
-
-
-
-
-
-9',
+'confirm_purge_button' => 'ОК',
 'confirm-purge-top' => 'И ччинин кэш алуддани?',
 
 # action=watch/unwatch
@@ -1315,14 +1312,14 @@ Cиягьда авай анжах (* лишандихъ галаз эгечIза
 'specialpages' => 'КьетIен  ччинар',
 
 # External image whitelist
-'external_image_whitelist' => ' #И цIар авайд хьиз тур</pre>
-#Агъада вахт акадар тийиз жезвай (гьамиша къайдадалди ) лугьунрин кьатIар эцига (// арада авай кIус).
+'external_image_whitelist' => ' #И цӀар авайд хьиз тур<pre>
+#Агъада вахт акадар тийиз жезвай (гьамиша къайдадалди) лугьунрин кьатӀар эцига (// арада авай кӀус).
 #Ибур кьецепатан суьретрин URL галаз гекъигда.
-#Дуьзкъвезвайбур суьретар хьиз къалурда, муькуьбур суьретриз тухузвай элячIунар хьиз къалурда.
-# "#" галаз эгечIзавай цIарариз къейдериз хьиз килигда.
-#ЦIарар регистрдиз фад кьатIудайбур я.
+#Дуьзкъвезвайбур суьретар хьиз къалурда, муькуьбур суьретриз тухузвай элячӀунар хьиз къалурда.
+#«#» галаз эгечӀзавай цӀарариз къейдериз хьиз килигда.
+#ЦӀарар регистрдиз фад кьатӀудайбур я.
 
-#ЦIарцин винел вири вахт акадар тийиз жезвай лугьунрин кьатIар эцига.И цIар авайд хьиз тур</pre>',
+#ЦӀарцин винел вири вахт акадар тийиз жезвай лугьунрин кьатӀар эцига. И цӀар авайд хьиз тур</pre>',
 
 # Special:Tags
 'tag-filter' => '[[Special:Tags|Tag]] куьзунаг:',
index c5f20af..024c56a 100644 (file)
@@ -504,7 +504,7 @@ La arcivo de sutraes per esta paje es asi per conveni:",
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|cambia|cambias}}',
 'recentchanges' => 'Cambias resente',
-'recentchangestext' => 'Asi la lista de cambias resente en la vici.',
+'recentchanges-summary' => 'Asi la lista de cambias resente en la vici.',
 'recentchanges-feed-description' => 'Seque la cambias plu resente a la vici en esta flue.',
 'rcnote' => 'Su es {{PLURAL:$1|cambia|cambias}} en la presedente {{PLURAL:$2|dia|dias}}, en $5, $4.',
 'rcnotefrom' => "A su es la cambias de '''$2''' (asta '''$1''' es mostrada).",
index 3eeb620..88b41b4 100644 (file)
@@ -915,7 +915,7 @@ W'owandikira by'onoonya bw'osoosawo akagambo ''all:'', okunoonya kubuna Wikipedi
 'nchanges' => '{{PLURAL:$1|Olukyukakyuka|Nkyukakyuka}} $1',
 'recentchanges' => 'Ebyakakyusibwa',
 'recentchanges-legend' => "Awategekerwa endaga y'ebyakakyusibwa",
-'recentchangestext' => "Goberera enkyukakyuka empya ez'oku lupapula luno",
+'recentchanges-summary' => "Goberera enkyukakyuka empya ez'oku lupapula luno",
 'recentchanges-feed-description' => "Kozesa omukutu guno okugoberera enkyukakyuka empya ez'oku wiki",
 'rcnote' => "Wano olaba {{PLURAL:$1|olukyukakyuka '''1''' olukoledwawo|enkyukakyuka '''$1''' ezikoledwawo}} mu {{PLURAL:$2|lunaku olwakayita|naku '''$2''' ezaakayita}}. Bino byategeerese ku ssaawa $5 nga $4.",
 'rclistfrom' => 'Laga enkyukakyuka empya ezikoledwa okuva $1',
index 38ebaca..5a3829c 100644 (file)
@@ -55,7 +55,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'Alle_berichte' ),
        'Allpages'                  => array( 'Alle_pagina\'s' ),
        'Ancientpages'              => array( 'Audste_pagina\'s' ),
-       'Blankpage'                 => array( 'Laege_pagina\'s' ),
+       'Blankpage'                 => array( 'Laeg_pagina\'s' ),
        'Block'                     => array( 'Blokkere' ),
        'Blockme'                   => array( 'Blokkeer_mich' ),
        'Booksources'               => array( 'Bookwinkele' ),
@@ -543,6 +543,8 @@ De gegaeve ree is ''$2''.",
 'filereadonlyerror' => '\'t Waar neet meugelik óm \'t bestandj "$1" aan te passe went de bestandjsrepositoir "$2" steit noe op allein-laeze.
 
 d\'n Opgegaeve raej vanne sloetendje admin waar "\'\'$3\'\'".',
+'invalidtitle-knownnamespace' => 'Óngèljige titel mit naamruumdje "$2" en teks "$3"',
+'invalidtitle-unknownnamespace' => 'Óngèljige titel mit ónbekèndj naamruumdenómmer $1 en teks "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Slechte configuratie: onbekenge virusscanner: ''$1''",
@@ -819,6 +821,7 @@ Lèt op: dien eige .css- en .js-pagina's beginne mèt  'ne klein lètter, beveur
 'updated' => '(Biegewèrk)',
 'note' => "'''Opmirking:'''",
 'previewnote' => "'''Lèt op: dit is 'n controlepagina; dien teks is nog neet opgesjlage!'''",
+'continue-editing' => 'Gank dórch mit bewirke',
 'previewconflict' => "Dees versie toent wie de tèks in 't bôvesjte vèld oet git zeen es e zouws opsjlaon.",
 'session_fail_preview' => "'''Sorry! Dien bewerking is neet verwerkt omdat sessiegegevens verlaore zeen gegaon.
 Probeer 't opnieuw. Als 't dan nog neet lukt, meldt dich dan aaf en weer aan.'''",
@@ -905,6 +908,12 @@ Dees parameters zeen eweggelaote.",
 'parser-template-loop-warning' => "D'r is 'ne krinkloup in sjablone geconstateerd: [[$1]]",
 'parser-template-recursion-depth-warning' => 'De recursiedeepte veur sjablone is euversjrede ($1)',
 'language-converter-depth-warning' => 'De deepdjelimiet veure spraokómzètter is euversjreje ($1)',
+'node-count-exceeded-category' => "Pagina's wo 't maximaal aantal nodes te väöl is",
+'node-count-exceeded-warning' => "Oppe paasj is 't maximaal aantal nodes te väöl",
+'expansion-depth-exceeded-category' => "Pagina's wo de expansiedeepdje te väöl is",
+'expansion-depth-exceeded-warning' => 'De paasj haet te väöl sjablone',
+'parser-unstrip-loop-warning' => 'Unstriplus gevónje',
+'parser-unstrip-recursion-limit' => 'Unstriprecursielimiet te väöl ($1)',
 
 # "Undo" feature
 'undo-success' => "Hiej onger stuit de teks wo in de verangering ongedaon gemaak is. Controleer veur 't opslaon of 't resultaot gewins is.",
@@ -1082,7 +1091,9 @@ Wees zeker det deze wieziging de gesjiedenisdoorloupendheid van de pagina zal be
 'mergelogpagetext' => "Hiejonger zuut geer 'ne lies van recente samevoeginge van 'ne paginagesjiedenis nao 'ne angere.",
 
 # Diffs
-'history-title' => 'Gesjiedenis van "$1"',
+'history-title' => '$1: bewèrkingseuverzich',
+'difference-title' => '$1 versjèl tösje versies',
+'difference-title-multipage' => "$1 en $2: versjèl tösje pagina's",
 'difference-multipage' => '(Versjil tösje paazjes)',
 'lineno' => 'Tekslien $1:',
 'compareselectedversions' => 'Vergeliek geselecteerde versies',
@@ -1444,7 +1455,7 @@ Deze informatie is zichbaar veur angere gebroekers.',
 'nchanges' => '$1 {{PLURAL:$1|bewerking|bewerkinge}}',
 'recentchanges' => 'Lètste verangeringe',
 'recentchanges-legend' => 'Opties veur recènte verangeringe',
-'recentchangestext' => 'op dees pagina kins doe de recènte verangeringe in deze wiki bekieke.',
+'recentchanges-summary' => 'op dees pagina kins doe de recènte verangeringe in deze wiki bekieke.',
 'recentchanges-feed-description' => 'Volg de meis recente bewerkinge in deze wiki via deze feed.',
 'recentchanges-label-newpage' => "Mit dees verangering is 'n nuuj pagina aangemaak",
 'recentchanges-label-minor' => "Dit is 'n klein bewirking",
@@ -1634,14 +1645,15 @@ Gank trök nao t [[Special:Upload/stash/$1|uploadformuleer]] om dit perbleem te
 'backend-fail-writetemp' => "'t Waes neet mäögelik nao 'n tiedelik besjtand te sjrieve.",
 'backend-fail-closetemp' => "'t Waes neet mäögelik 'n tiedelik besjtand te sjlete.",
 'backend-fail-read' => 'Kós bestjand $1 neet laeze.',
-'backend-fail-create' => 'Kós bestjand $1 neet aanmake.',
-'backend-fail-maxsize' => "'t Waar neet meugelik 't bestandj $1 aan te make went 't is grótter es {{PLURAL:$2|eine byte|$2 byte}}.",
+'backend-fail-create' => 'Kós bestandj $1 neet sjrieve.',
+'backend-fail-maxsize' => "'t Waar neet meugelik 't bestandj $1 te besjrieve went 't is grótter es {{PLURAL:$2|eine byte|$2 byte}}.",
 'backend-fail-readonly' => 'Vannen opslaag "$1" kin op dit memènt allein gelaeze waere. De opgegaeve raeje is: "$2"',
 'backend-fail-synced' => '\'t Bestandj "$1" bevindj zich in \'nen ónsamehangendje toestandj inne intern opslaagbackends.',
 'backend-fail-connect' => 'Kós de bestandjsbackend neet verbinje mitte opslaagbackend "$1".',
 'backend-fail-internal' => '\'n Ónbekèndje fout is ópgetaoje innen opslaagbackend "$1".',
 'backend-fail-contenttype' => 'Kós \'t inhawdtype van \'t bestnadj óm es "$1" op te slaon neet bepaole.',
 'backend-fail-batchsize' => 'Reiks van $1 {{PLURAL:$1|bestandjsoperatie|bestandjsoperaties}} in de opslaagbackend; de limiet is $2 {{PLURAL:$2|operatie|operaties}}.',
+'backend-fail-usable' => "Kós 't bestandj $1 neet besjraeve vanwaenge te mèn rèchte of aafwaezige mappe/kóntaeners.",
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Kós neet verbinje mit de journaaldatabase veur de opslaagbackend "$1".',
@@ -2864,7 +2876,7 @@ $1",
 
 # Media information
 'mediawarning' => "'''Waorsjuwing''': Dit bestandj kin 'n anger kood höbbe, door 't te doorveure in dien systeem kin 't gecompromeerde dinger oplevere.",
-'imagemaxsize' => "Meximale aafbeildjingsaafmaeting:<br/>''(veur besjrievingspaasj)''",
+'imagemaxsize' => "Meximaal aafbeildjingsaafmaeting:<br />''(veur besjrievingspaasj)''",
 'thumbsize' => 'Gruutde vanne thumbnail:',
 'widthheightpage' => "$1 × $2, $3 {{PLURAL:$3|pazjena|pazjena's}}",
 'file-info' => 'bestandsgruutde: $1, MIME-type: $2',
index 48376fb..8d0a9cd 100644 (file)
@@ -665,7 +665,7 @@ Leggenda: (corr) = differense co-a verscion corrente, (prec) = differense co-a v
 'nchanges' => '$1 {{PLURAL:$1|modiffica|modiffiche}}',
 'recentchanges' => 'Ùrtimi cangiamenti',
 'recentchanges-legend' => 'Inpostaçioìn de lìùrtimi cangiaménti',
-'recentchangestext' => "Questa pàgina a g'ha di càngi ciù reçenti a-i contegnûi do scîto.",
+'recentchanges-summary' => "Questa pàgina a g'ha di càngi ciù reçenti a-i contegnûi do scîto.",
 'recentchanges-feed-description' => "Questo feed o g'ha di cangiaménti ciù reçenti a-i contegnûi do scîto.",
 'recentchanges-label-newpage' => "Sto cangiaménto o l'à creòu 'na pàgina nêuva",
 'recentchanges-label-minor' => 'Cangiamento minô (m)',
index c2c9750..141c05e 100644 (file)
@@ -383,7 +383,7 @@ Legend: '''({{int:cur}})''' = vaiţīd līdzinţõmizõks lǟndz redaktsijõks,,
 'nchanges' => '$1 {{PLURAL:$1|mõitõks|mõitõkst}}',
 'recentchanges' => 'Perrizt mõitõkst',
 'recentchanges-legend' => 'Perrizt mõitõkst',
-'recentchangestext' => 'Vaņ sīe līed pǟl tīedõd perīži mõitõkši.',
+'recentchanges-summary' => 'Vaņ sīe līed pǟl tīedõd perīži mõitõkši.',
 'recentchanges-feed-description' => 'Vaņ iļ vikipēdijõz tīedõd perīži mõitõkši.',
 'recentchanges-label-newpage' => 'Se mõitõks luoi ūd līed',
 'recentchanges-label-minor' => 'Se um ikš piški parāmtimi',
index 1ccd9ce..3ac73c3 100644 (file)
@@ -739,7 +739,7 @@ Pröa a giuntagh denanz a la tò ricerca ''all:'' per cercà in tücc i namespac
 'nchanges' => '$1 {{PLURAL:$1|mudifega|mudifegh}}',
 'recentchanges' => 'Cambiament recent',
 'recentchanges-legend' => 'Upzión ültem mudifegh',
-'recentchangestext' => "In quela pagina chì a gh'è i cambiament püssee recent al cuntegnüü del sit.",
+'recentchanges-summary' => "In quela pagina chì a gh'è i cambiament püssee recent al cuntegnüü del sit.",
 'recentchanges-feed-description' => "Quel feed chì 'l mustra i mudifegh püssee recent ai cuntegnüü de la wiki.",
 'recentchanges-label-newpage' => "Quela mudifega chì l'ha creaa una pagina növa",
 'recentchanges-label-minor' => "Quela chì l'è una mudifega piscinina.",
index 9eb5252..9669b31 100644 (file)
@@ -543,7 +543,7 @@ $messages = array(
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|ການປ່ຽນແປງ|ການປ່ຽນແປງ}}',
 'recentchanges' => 'ການດັດແກ້ຫຼ້າສຸດ',
-'recentchangestext' => 'ເບິ່ງ ການປ່ຽນແປງ ຫຼ້າສຸດ ຢູ່ ໜ້າວິກີນີ້.',
+'recentchanges-summary' => 'ເບິ່ງ ການປ່ຽນແປງ ຫຼ້າສຸດ ຢູ່ ໜ້າວິກີນີ້.',
 'recentchanges-feed-description' => 'ນຳເບິ່ງການປ່ຽນແປງຫຼ້າສຸດຢູ່ ວິກິນີ້ ໃນ ຟີດ',
 'rcnote' => "ທາງລຸ່ມ {{PLURAL:$1|ແມ່ນ'''1''' ການປ່ຽນແປງ|ແມ່ນ '''$1''' ການປ່ຽນແປງຫຼ້າສຸດ}} ໃນ {{PLURAL:$2|ມື້|'''$2''' ມື້}}, ເມື່ອ $3.",
 'rclistfrom' => 'ສະແດງ ການປ່ຽນແປງ ເລີ່ມແຕ່  $1',
index 6df4a0a..f82e0be 100644 (file)
@@ -562,8 +562,11 @@ $2',
 'ns-specialprotected' => 'Specialieji puslapiai negali būti redaguojami.',
 'titleprotected' => "[[User:$1|$1]] apsaugojo šį pavadinimą nuo sukūrimo.
 Nurodyta priežastis yra ''$2''.",
-'filereadonlyerror' => 'Neįmanoma pakeisti failo " $1 " nes failų saugykla " $2 " yra nustatyta tik skaitymo režimu.
-Ją užrakinęs administratorius pateikė šį paaiškinimą: " $3 ".',
+'filereadonlyerror' => 'Neįmanoma pakeisti failo "$1" nes failų saugykla "$2" yra nustatyta tik skaitymo režimu.
+
+Ją užrakinęs administratorius pateikė šį paaiškinimą: "$3".',
+'invalidtitle-knownnamespace' => 'Klaidingas pavadinimas vardų erdvėje "$2" ir tekstu "$3"',
+'invalidtitle-unknownnamespace' => 'Klaidingas pavadinimas nežinomoje vardų erdvėje numeriu $1 ir tekstu "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Neleistina konfigūracija: nežinomas virusų skeneris: ''$1''",
@@ -1111,6 +1114,8 @@ Prašome patikrinti sąrašus.',
 
 # Diffs
 'history-title' => '„$1“ versijų istorija',
+'difference-title' => '$1: Skirtumas tarp redakcijų',
+'difference-title-multipage' => '$1 ir $2: Skirtumas tarp puslapių',
 'difference-multipage' => '(Skirtumai tarp puslapių)',
 'lineno' => 'Eilutė $1:',
 'compareselectedversions' => 'Palyginti pasirinktas versijas',
@@ -1469,7 +1474,7 @@ teisės",
 'nchanges' => '$1 {{PLURAL:$1|pakeitimas|pakeitimai|pakeitimų}}',
 'recentchanges' => 'Naujausi keitimai',
 'recentchanges-legend' => 'Naujausių keitimų parinktys',
-'recentchangestext' => 'Šiame puslapyje yra patys naujausi pakeitimai šiame projekte.',
+'recentchanges-summary' => 'Šiame puslapyje yra patys naujausi pakeitimai šiame projekte.',
 'recentchanges-feed-description' => 'Sekite pačius naujausius projekto keitimus šiame šaltinyje.',
 'recentchanges-label-newpage' => 'Šiuo keitimu sukurtas naujas puslapis',
 'recentchanges-label-minor' => 'Tai smulkus pakeitimas',
@@ -3728,7 +3733,7 @@ Paveikslėliai yra rodomi pilna raiška, kiti failų tipai paleidžiami tiesiogi
 'api-error-unknown-code' => 'Nežinoma klaida: " $1 "',
 'api-error-unknown-error' => 'Vidinė klaida: kažkas nutiko bandant įkelti failą.',
 'api-error-unknown-warning' => 'Nežinomas įspėjimas: $1',
-'api-error-unknownerror' => 'Nežinoma klaida: " $1 "',
+'api-error-unknownerror' => 'Nežinoma klaida: "$1"',
 'api-error-uploaddisabled' => 'Įkėlimas išjungtas šioje wiki.',
 'api-error-verification-error' => 'Šis failas gali būti sugadintas arba turi neteisingą papildinį.',
 
index 0f43760..9de6b30 100644 (file)
@@ -60,11 +60,11 @@ $messages = array(
 
 'underline-always' => 'Ziah/ngei ngei',
 'underline-never' => 'Ngai lo',
-'underline-default' => 'Browser duhdàn',
+'underline-default' => 'Rängpuifanna duhdàn',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Siamţhatna hmun hawrawp pian',
-'editfont-default' => 'Browser duhdàn',
+'editfont-default' => 'Rängpuifanna duhdàn',
 'editfont-monospace' => 'Hawrawp inkar rualkhai',
 'editfont-sansserif' => 'Sans-serif hawrawp',
 'editfont-serif' => 'Serif hawrawp',
@@ -87,11 +87,11 @@ $messages = array(
 'january' => 'Pawlkut',
 'february' => 'Ramtuk',
 'march' => 'Vau',
-'april' => 'Ţau',
-'may_long' => 'Ţomir',
+'april' => 'au',
+'may_long' => 'omir',
 'june' => 'Nikir',
 'july' => 'Vawkhniahzawn',
-'august' => 'Thiţin',
+'august' => 'Thiin',
 'september' => 'Mimkut',
 'october' => 'Khuangchawi',
 'november' => 'Sahmulphah',
@@ -172,7 +172,7 @@ $messages = array(
 'vector-simplesearch-preference' => 'Sawn awlsam lehzualna rawtna awmtir rawh (Vektawr vun tan chauh)',
 'vector-view-create' => 'Siamna',
 'vector-view-edit' => 'Siamţhatna',
-'vector-view-history' => 'A chanchin enna',
+'vector-view-history' => 'Hunhlui-chanchin',
 'vector-view-view' => 'Chhiarna',
 'vector-view-viewsource' => 'A hnar enna',
 'actions' => 'Thiltih',
@@ -181,20 +181,20 @@ $messages = array(
 
 'errorpagetitle' => 'Dik lo',
 'returnto' => '$1 phekah kir leh rawh.',
-'tagline' => '{{SITENAME}} aţangin',
-'help' => 'Ţanpuina',
+'tagline' => '{{SITENAME}} aangin',
+'help' => 'anpuina',
 'search' => 'Zawnna',
 'searchbutton' => 'Zawng rawh le',
-'go' => 'Kal rawh le',
-'searcharticle' => 'Kal rawh le',
+'go' => 'Khai le',
+'searcharticle' => 'Khai le',
 'history' => 'Phêk chanchin',
 'history_short' => 'Chanchin',
 'updatedmarker' => 'ka tlawh hnuhnun ber hnua tihdanglam',
-'printableversion' => 'Nemkai theih',
+'printableversion' => 'Chhụtkài theih',
 'permalink' => 'Hlet hlun',
-'print' => 'Nemkaina',
+'print' => 'Chhụkàina',
 'view' => 'Enna',
-'edit' => 'Siamţhatna',
+'edit' => 'Siamhatna',
 'create' => 'Siamna',
 'editthispage' => 'He phek hi siamţha rawh',
 'create-this-page' => 'He phêk hi siam rawh',
@@ -226,7 +226,7 @@ $messages = array(
 'categorypage' => 'Pawl phêk enna',
 'viewtalkpage' => 'Sawinona en rawh',
 'otherlanguages' => 'Ţawng dangin',
-'redirectedfrom' => '($1 aţanga hruailuh a ni)',
+'redirectedfrom' => '($1 aanga hruailuh a ni)',
 'redirectpagesub' => 'Hruailuhna phêk',
 'lastmodifiedat' => 'Hemi phek hi ni $1,  dar $2 khan siamţhat hnuhnun ber a ni.',
 'viewcount' => 'He phêk hi vawi {{PLURAL:$1|khat|$1}} tlawh a ni tawh.',
@@ -248,7 +248,7 @@ $1',
 'aboutpage' => 'Project:Chungchang',
 'copyright' => 'A chhung thute hi $1 hmanga lakchhawn phal a ni.',
 'copyrightpage' => '{{ns:project}}:Lakchhawn phalphung',
-'currentevents' => 'Chanchin thar',
+'currentevents' => 'Chanchinthar',
 'currentevents-url' => 'Project: Chanchin thar',
 'disclaimers' => 'Intlawhkhalhna',
 'disclaimerpage' => 'Project: Intlawhkhalhna Dan',
@@ -272,7 +272,7 @@ $1',
 [[Special:Version|version page]] en rawh.',
 
 'ok' => 'Aw le',
-'retrievedfrom' => '"$1" aţanga lâk chhuah',
+'retrievedfrom' => '"$1" aanga lâk chhuah',
 'youhavenewmessages' => '($2) $1 i nei.',
 'newmessageslink' => 'thudawn thar',
 'newmessagesdifflink' => 'tihdanglam thar',
@@ -664,7 +664,7 @@ Lamtawi hmante: '''({{int:cur}})'''= ennawnna thar ber nena danglamna, '''({{int
 # Diffs
 'history-title' => '"$1" ennawnna chanchin',
 'lineno' => 'Tlar $1:',
-'compareselectedversions' => 'Ennawnna i thlan tâkte khi khaikhin rawh le',
+'compareselectedversions' => 'Ennawnna i thlan tâkte khaikhin rawh le',
 'editundo' => 'tihletna',
 'diff-multi' => '(Hmangtu {{PLURAL:$2|1-in|$2-ten}} a karlaka {{PLURAL:$2|a|an}} ennawnna {{PLURAL:$1|1|$1-te}} tihlan a ni lo)',
 
@@ -944,9 +944,9 @@ Hmangtuten e-lehkha an thawn chein i e-chenhmun hrilh an ni chuang lo vang.',
 'nchanges' => 'Tihdanglam {{PLURAL:$1||$1-te}}',
 'recentchanges' => 'Tihdanglam thar',
 'recentchanges-legend' => 'Tihdanglam thar duhdàn',
-'recentchangestext' => 'He phek wiki-a tihdanglamna thar deuh deuhte chhui rawh.',
+'recentchanges-summary' => 'He phek wiki-a tihdanglamna thar deuh deuhte chhui rawh.',
 'recentchanges-feed-description' => 'He chawm-a wiki tihdanglamna thar deuh deuhte chhui rawh.',
-'recentchanges-label-newpage' => 'He siamţhat hian phêk thar a siam',
+'recentchanges-label-newpage' => 'Hei hi phêk thar siamna a ni.',
 'recentchanges-label-minor' => 'Hei hi siamţhatna tenau a ni',
 'recentchanges-label-bot' => 'He siamţhat hi khawlmi tih a ni',
 'recentchanges-label-unpatrolled' => 'He siamţhat hi viltu la nei lo a ni',
@@ -1087,7 +1087,7 @@ Hmangtu azira i thliarhran erawh chuan a hmangtuina a hlankai hnuhnüng ber taks
 
 # File description page
 'file-anchor-link' => 'Taksa',
-'filehist' => 'A chanchin enna',
+'filehist' => 'Hunhlui-chanchin',
 'filehist-help' => 'A hunlaia a lan dan en tùrin a hun/ni-ah hmet rawh.',
 'filehist-deleteall' => 'a vaiin nuaibo rawh',
 'filehist-deleteone' => 'nuaibo rawh',
@@ -1114,9 +1114,11 @@ Zawmtu zawng zawng [[Special:WhatLinksHere/$2|tlarchhuahna hetah hian a awm]] e.
 'sharedupload-desc-there' => 'Hë taksa hi $1-a mi a ni a, hna-hmachhawp dangin a hmang ve mai thei.
 Hriattirna dang chu [$2 taksa sawifiahna phêk]-ah hian i en thei ang.',
 'sharedupload-desc-here' => 'He taksa hi $1-a mi a ni a, hna-hmachhawp dangin an hmang ve mai thei.
-[Taksa sawifiahna phek $2]-a sawifiahna lang hetah hian kan rawh chhawp chhuak e.',
+[$2 Taksa sawifiahna phek]-a sawifiahna lang hetah hian kan rawh chhawp chhuak e.',
 'sharedupload-desc-edit' => 'Hë taksa hi $1-a mi a ni a, hna-hmachhawp dangin a hmang vè mai thei.
 Taksa sawifiahna hi i siamṭha duh a nih chuan  [$2 taksa sawifiahna phêk] aṭang hian i siamṭha thei ang.',
+'sharedupload-desc-create' => 'Hë taksa hi $1-a mi a ni a, hna-hmachhawp dangin a hmang vè mai thei.
+Taksa sawifiahna hi i siamṭha duh a nih chuan  [$2 taksa sawifiahna phêk] aṭang hian i siamṭha thei ang.',
 'filepage-nofile' => 'He hmingpu taksa a awm lo',
 'filepage-nofile-link' => 'He hming pu taksa hi a awm lo va, mahsé i [$1 hlangkai thei] ang.',
 'uploadnewversion-linktext' => 'He taksa chhuah thar hi hlangkai rawh',
@@ -1127,11 +1129,36 @@ Taksa sawifiahna hi i siamṭha duh a nih chuan  [$2 taksa sawifiahna phêk] a
 'filerevert' => '$1 tilêt rawh',
 'filerevert-legend' => 'Taksa tilêt rawh',
 
+# MIME search
+'mimetype' => 'MIME chî:',
+'download' => 'hnuhthlâkna',
+
+# Unwatched pages
+'unwatchedpages' => 'Vèn loh phêkte',
+
+# List redirects
+'listredirects' => 'Hruailuhna phêkte',
+
+# Unused templates
+'unusedtemplates' => 'Siamsa hman lohte',
+'unusedtemplateswlh' => 'zawmna dang',
+
 # Random page
 'randompage' => 'Phêk kahpah',
+'randompage-nopages' => "{{PLURAL:$2|Hë hminghmunah hian|Hê'ng hminghmunahte hian}} phêk pakhat mah a awm lo: $1.",
+
+# Random redirect
+'randomredirect' => 'Hruailuhna kahpah',
+'randomredirect-nopages' => '"$1" hminghmunah hian hruailuhna phêk pakhat mah a awm lo.',
 
 # Statistics
 'statistics' => 'Lepsena',
+'statistics-header-pages' => 'Phêk lepsena',
+'statistics-header-edits' => 'Siamṭhatphung lepsena',
+'statistics-header-views' => 'Tlawhna lepsèna',
+'statistics-header-users' => 'Hmangtute chanchin kimchang',
+'statistics-header-hooks' => 'Chanchin dang',
+'statistics-articles' => 'Thuziakna phêkte',
 'statistics-pages' => 'Phekte',
 'statistics-pages-desc' => 'Hë wiki-a phêk awm zawng zawng, sawihona phêk, hruailuhna phêk ladt. tel vekin.',
 'statistics-files' => 'Taksa hlankaite',
@@ -1194,6 +1221,7 @@ Taksa sawifiahna hi i siamṭha duh a nih chuan  [$2 taksa sawifiahna phêk] a
 'shortpages' => 'Phêk täwite',
 'longpages' => 'Phêk seite',
 'deadendpages' => 'Phêk ralthümte',
+'deadendpagestext' => 'A hnuaia phêkte hian {{SITENAME}}-a phêk dang pakhat mah zawmpui an nei lo.',
 'protectedpages' => 'Phêk vènhimte',
 'protectedpages-indef' => 'Phêk vènhim kumhlunho chauh',
 'protectedpagestext' => 'A hnuaia phêkte hi sawn emaw siam danglam theih loh tùra vènhim an ni',
@@ -1218,7 +1246,7 @@ Taksa sawifiahna hi i siamṭha duh a nih chuan  [$2 taksa sawifiahna phêk] a
 # Book sources
 'booksources' => 'Lehkhabu rawnte',
 'booksources-search-legend' => 'Lehkhabu hnar zingah zawng rawh',
-'booksources-go' => 'Kal rawh le',
+'booksources-go' => 'Khai le',
 
 # Special:Log
 'specialloguserlabel' => 'Buatsaihtu:',
@@ -1239,7 +1267,7 @@ Taksa sawifiahna hi i siamṭha duh a nih chuan  [$2 taksa sawifiahna phêk] a
 'allnotinnamespace' => 'Phêk zawng zawng (hminghmun $1-a awm lo)',
 'allpagesprev' => 'Hma',
 'allpagesnext' => 'Dawt',
-'allpagessubmit' => 'Kal rawh le',
+'allpagessubmit' => 'Khai le',
 'allpagesprefix' => 'Hemi thuhmabeta neih zawng hi pholang rawh:',
 'allpagesbadtitle' => 'Phêk hming dik lo emaw ţawng dang/wiki dang thuhmabet a hmang palh a nih hmel.
 Phêk hminga hman awih loh hawrawp a hmang palh a ni mai thei bawk.',
@@ -1318,8 +1346,8 @@ Hetah hian [[Special:UnusedCategories|pawl hman lohho]] pholan tel a ni lo.
 'watchlist' => 'Ka ralvèn',
 'mywatchlist' => 'Ka ralvèn',
 'watchlistfor2' => '$1 tan $2',
-'nowatchlist' => 'I ràlvènah engmah i nei lo.',
-'watchlistanontext' => 'I ralvèn en tùrin emaw siamţha tùrin $1 rawh.',
+'nowatchlist' => 'Rálvèn i nei lo',
+'watchlistanontext' => 'I ralvèn en tùrin emaw siamha tùrin $1 rawh.',
 'watchnologin' => 'I la lût lo',
 'watchnologintext' => 'I ralvèn tidanglam tùrin i [[Special:UserLogin|inziahluh]] a ngai.',
 'addwatch' => 'Ràlvèn zingah telh rawh',
@@ -1341,19 +1369,115 @@ Hetah hian [[Special:UnusedCategories|pawl hman lohho]] pholan tel a ni lo.
 'wlshowlast' => 'Darkar $1 kalta-a tihdanglam tilang rawh , ni $2 kalta-a tihdanglam tilang rawh, $3 tilang rawh',
 'watchlist-options' => 'Ralvèn duhdàn',
 
+'enotif_impersonal_salutation' => '{{SITENAME}} hmangtu',
+'changed' => 'tihdanglam a ni ta',
+'created' => 'siam a ni ta',
+'enotif_subject' => '{{SITENAME}} phêk $PAGETITLE tih hi $CHANGEDORCREATED,  $PAGEEDITOR bultum a ni.',
+'enotif_lastvisited' => 'I tlawh hnuhnùn ber hnu lama tihdanglam zawng zawng en i duh chuan $1 en rawh.',
+'enotif_lastdiff' => 'Hë tihdanglamna hi en tùrin $1 thlír rawh.',
+'enotif_anon_editor' => 'hmangtu hriat loh $1',
+
 # Delete
+'deletepage' => 'Hë phêk hi paih rawh',
+'confirm' => 'Tihchianna',
+'excontent' => 'kentel: "$1"',
+'excontentauthor' => 'kentel: "$1" (kutthawhtu awm chhun "[[Special:Contributions/$2|$2]])',
+'exbeforeblank' => 'tihruah hmaa a thufùn: $1',
+'exblank' => 'phêk ruak a ni',
+'delete-confirm' => '"$1" paihbona',
+'delete-legend' => 'Nuaibona',
+'historywarning' => "'''Vàukhànna:''' I nuaibo tum phêk hian khawih danglam vawi $1{{PLURAL:$1||}} vêl zet a lo tâwk tawh.",
+'confirmdeletetext' => 'Phêk pakhat leh a chanchin-ziak zawng zawng i nuaibo vek dawn mék a ni.
+Hei hi i tih tum rëng a ni a, a hnuleh i hre chiang a, [[{{MediaWiki:Policy-url}}|rèlphung]] dàn zúl i zui ngèi a ni tih finfiah phawt rawh le.',
 'actioncomplete' => 'A zo ta',
 'actionfailed' => 'A tlawlh',
+'deletedtext' => '"$1" nuaibo a ni ta.
+Tün hnäia nuaibo thar chhinchhiahna $2-ah i en thei ang.',
 'dellogpage' => 'Nuaibo chhinchhiahna',
+'dellogpagetext' => 'A hnuaiah hian tün hnaia nuaibo tharho kan rawn chhawp chhuak e.',
+'deletionlog' => 'nuaibo chhinchhiahna',
+'reverted' => 'Awmphung hluiah dah lêt a ni',
+'deletecomment' => 'Chhan:',
+'deleteotherreason' => 'Chhan dang:',
+'deletereasonotherlist' => 'Chhan dang',
+'deletereason-dropdown' => '*Nuaibo chhan hluar zualte
+**Phêk siamtu ngenna
+**Lâkchhàwn phalphung bawhpelhna
+**Inchirhthehna',
+'delete-edit-reasonlist' => 'Nuaibo chhan siamṭhatna',
+'delete-toobig' => 'Hë phêk hian siam danglam a tâwk ngun mangkhèng, vawi $1 {{PLURAL:$1||}} chüang zet.
+Hetiang phêk nuaibo hi hrêk deuh hlek a ni, tum loh puia {{SITENAME}} tihchingpen däl tùrin.',
+'delete-warning-toobig' => 'Hë phêk hian tihdanglam a lo tâwk nasa tawh mangkhèng, vawi $1 {{PLURAL:$1||}} chüang zet.
+Hemi nuaibo hian {{SITENAME}} hriatna-khawlpui hnathawh a tisukuk palh thei; 
+fimkhur zui hräm ang che.',
 
 # Rollback
+'rollback' => 'Siamṭhatna sûtna',
+'rollback_short' => 'Sûtlêtna',
 'rollbacklink' => 'sûtlêtna',
+'rollbackfailed' => 'Sûtlêt a tlawlh',
+'cantrollback' => 'Siamṭhatna a sûtlêt theih loh;
+a siamṭhatu hnuhnüng ber hi hë phêk tawktu awm chhun a la ni tlat.',
+'editcomment' => "Siamṭhatna kaihtawi: \"''\$1''\".",
+'rollback-success' => '$1-in siamṭhana a sûtlêt a;
+$2-in a awmphung ngäiah a dahlêt leh.',
+
+# Edit tokens
+'sessionfailure-title' => 'Hun hman tlawlh!',
 
 # Protect
 'protectlogpage' => 'Venhim chhinchhiahna',
 'protectedarticle' => 'venhim: "[[$1]]"',
+'modifiedarticleprotection' => '"[[$1]]" vènhimphung a thlâk',
+'unprotectedarticle' => '"[[$1]]" laka vènhimna a nuaibo',
+'movedarticleprotection' => 'vènhimna herremphung "[[$2]]" aṭang "[[$1]]"-ah a sawn',
+'protect-title' => '"$1" vènhimphung thlâkna',
+'protect-title-notallowed' => '"$1" vènhimphung thlìrna',
+'prot_1movedto2' => '[[$1]] kha [[$2]]-ah sawn a ni',
+'protect-badnamespace-title' => 'Hminghmun vènhim theih loh',
+'protect-badnamespace-text' => 'Hë hminghmuna phêkte hi vènhim theih a ni lo.',
+'protect-legend' => 'Vènhim tihchianna',
+'protectcomment' => 'Chhan:',
+'protectexpiry' => 'Tàwp hun:',
+'protect_expiry_invalid' => 'A tàwp hun i sawi kha a hman theih loh.',
+'protect_expiry_old' => 'A tàwp hun i thlan kha a thleng tawh!',
+'protect-unchain-permissions' => 'Vènhimna duhthlan dang chhuah zalenna',
+'protect-expiring' => '$1 (UTC) thleng',
+'protect-expiring-local' => '$1 thleng',
+'protect-expiry-indefinite' => 'tiamchin awm lo',
+'protect-cascade' => 'Hë phêka ziahhnanho pawh vénghim vek rawh (vènhim inkhaidiat)',
+'protect-cantedit' => 'Hë phêk vènhimphung hi i thlâk thei lo, siamṭhat phalna i neih loh vàng a ni.',
+'protect-othertime' => 'Hun dang:',
+'protect-othertime-op' => 'hun dang',
+'protect-existing-expiry' => 'Tàwphun awm sa: $3, $2',
+'protect-otherreason' => 'Chhan dang:',
+'protect-otherreason-op' => 'Chhan dang',
+'protect-dropdown' => '*Vènhim chhan lär zualte
+**Inchirhthehna hlüar lutuk
+**Infakmawina hleihlûak
+**Siamṭhat inchuhna pawi tham
+̆**Phêk tlawh nasat',
+'protect-edit-reasonlist' => 'Vènhim chhan siamṭhatna',
+'protect-expiry-options' => 'darkar 1:1 hour, ni 1:1 day, kar 1:1 week, kar 2:2 weeks, thla 1:1 month, thla 3:3 months, thla 6:6 months, kum 1:1 year, tiam chin awm lo:infinite',
+'restriction-type' => 'Phalna:',
+'restriction-level' => 'Hrêkphung:',
+'minimum-size' => 'Têtzáwng tiamchin',
+'maximum-size' => 'Lenzáwng bituk:',
+'pagesize' => '(bait)',
+
+# Restrictions (nouns)
+'restriction-edit' => 'Siamṭhatna',
+'restriction-move' => 'Sawnna',
+'restriction-create' => 'Siamna',
+'restriction-upload' => 'Hlànkàina',
+
+# Restriction levels
+'restriction-level-sysop' => 'vènhim pumhlùm',
+'restriction-level-autoconfirmed' => 'hualna',
+'restriction-level-all' => 'a enga pawh',
 
 # Undelete
+'undelete' => 'Phêk nuaibo tawhho thlìrna',
 'undeletelink' => 'enna/ngaiawhtirna',
 'undeleteviewlink' => 'enna',
 'undelete-search-submit' => 'Zawnna',
@@ -1410,6 +1534,7 @@ Hetah hian [[Special:UnusedCategories|pawl hman lohho]] pholan tel a ni lo.
 'ipbreasonotherlist' => 'Chhan dang',
 'ipbsubmit' => 'Hmangtu dangbet rawh',
 'ipboptions' => 'darkar 2:2 hours, ni 1:1 day, ni 3:3 days, kar 1:1 week, kar 2:2 weeks, thla 1:1 month, thla 3:3 months, thla 6:6 months, kum 1:1 year, tiam chin awm lo:infinite',
+'ipb-blockingself' => 'Nangmah leh nangmah i indäl dáwn! I duh chiah maw?',
 'ipblocklist' => 'Hmangtu danbeh-ho',
 'ipblocklist-legend' => 'Hmangtu danbeh zawng rawh',
 'blocklink' => 'danbehna',
@@ -1468,7 +1593,7 @@ Amah leh amah inluahlantir a theih loh.',
 'allmessagesname' => 'Thuthawn hming',
 'allmessagesdefault' => 'Thuthawn tùr ziahsa',
 'allmessages-language' => 'Ţawng:',
-'allmessages-filter-submit' => 'Kal rawh le',
+'allmessages-filter-submit' => 'Khai le',
 
 # Thumbnails
 'thumbnail-more' => 'Tihlenna',
@@ -1519,7 +1644,7 @@ A hnar i en thei ang.',
 'tooltip-t-emailuser' => 'He hmangtu hnenah hian e-lehkha thawn rawh',
 'tooltip-t-upload' => 'Taksa hlankaina',
 'tooltip-t-specialpages' => 'Phek vohbik zawng zawng tlarna',
-'tooltip-t-print' => 'Nemkai theih',
+'tooltip-t-print' => 'Chhụtkài theih',
 'tooltip-t-permalink' => 'He phêk ennawnna zawmna hlun',
 'tooltip-ca-nstab-main' => 'A chhung thu awm ziahna en rawh',
 'tooltip-ca-nstab-user' => 'Hmangtu phêk en rawh',
@@ -1691,7 +1816,7 @@ A bak zawng chu thuhrûk sa vek a ni ang.
 'confirm-unwatch-button' => 'Aw le',
 
 # Multipage image navigation
-'imgmultigo' => 'Kal rawh le!',
+'imgmultigo' => 'Khai le!',
 'imgmultigoto' => 'Phêk $1-ah kal rawh',
 
 # Table pager
@@ -1729,7 +1854,14 @@ A bak zawng chu thuhrûk sa vek a ni ang.
 #Tbchb zawng zawng hemi tlar chungah hian dah tùr. He tlar hi a nih ang ngai ngaia hnutchhiah tùr </pre>',
 
 # Special:Tags
-'tag-filter' => '[[Special:Tags|Tag]] thlitfimna:',
+'tag-filter' => '[[Special:Tags|Sawirelh]] thlitfimna:',
+'tag-filter-submit' => 'Thlitfimna',
+'tags-title' => 'Sawirelh',
+'tags-tag' => 'Sawirelh hming',
+'tags-display-header' => 'Tihdanglam tlarna-a landàn',
+'tags-description-header' => 'Awmze sawifiahna kimchang',
+'tags-hitcount-header' => 'Tihdanglam sawirelhte',
+'tags-edit' => 'siamṭhatna',
 
 # New logging system
 'logentry-move-move' => '$3 tih phêk kha $4-ah $1 hian a thlâk.',
index 2354acc..289d5c4 100644 (file)
@@ -667,7 +667,7 @@ Pēdējais bloķēšanas reģistra ieraksts ir apskatāms zemāk:',
 '''Tas vēl nav saglabāts!'''",
 'updated' => '(Atjaunots)',
 'note' => "'''Piezīme: '''",
-'previewnote' => "'''Atceries, ka šis ir tikai pirmskats un vēl nav saglabāts!'''",
+'previewnote' => "'''Atceries, ka šis ir tikai pirmskats un teksts vēl nav saglabāts!'''",
 'session_fail_preview' => "'''Neizdevās apstrādāt tavas izmaiņas, jo tika pazaudēti sesijas dati.
 Lūdzu mēģini vēlreiz.
 Ja tas joprojām nedarbojas, mēģini [[Special:UserLogout|izlogoties ārā]] un ielogoties no jauna.'''",
@@ -1109,10 +1109,10 @@ Ja tu izvēlies to norādīt, tas tiks izmantots, lai identificētu tavu darbu (
 'group-all' => '(visi)',
 
 'group-user-member' => '{{GENDER:$1|lietotājs}}',
-'group-autoconfirmed-member' => 'automātiski apstiprinātais lietotājs',
-'group-bot-member' => 'Bots',
-'group-sysop-member' => 'Administrators',
-'group-bureaucrat-member' => 'Birokrāts',
+'group-autoconfirmed-member' => '{{GENDER:$1|automātiski apstiprināts lietotājs|automātiski apstiprināta lietotāja}}',
+'group-bot-member' => '{{GENDER:$1|bots}}',
+'group-sysop-member' => '{{GENDER:$1|administrators|administratore}}',
+'group-bureaucrat-member' => '{{GENDER:$1|birokrāts|birokrāte}}',
 'group-suppress-member' => 'novērotājs',
 
 'grouppage-user' => '{{ns:project}}:Lietotāji',
@@ -1220,7 +1220,7 @@ Ja tu izvēlies to norādīt, tas tiks izmantots, lai identificētu tavu darbu (
 'nchanges' => '$1 {{PLURAL:$1|izmaiņa|izmaiņas}}',
 'recentchanges' => 'Pēdējās izmaiņas',
 'recentchanges-legend' => 'Pēdējo izmaiņu iespējas',
-'recentchangestext' => 'Šajā lapā ir šitajā viki izdarītās pēdējās izmaiņas.',
+'recentchanges-summary' => 'Šajā lapā ir uzskaitītas pēdējās izdarītās izmaiņas.',
 'recentchanges-feed-description' => 'Sekojiet līdzi jaunākajām izmaiņām vikijā izmantojot šo barotni.',
 'recentchanges-label-newpage' => 'Šī ir jaunizveidota lapa',
 'recentchanges-label-minor' => 'Šī ir maznozīmīga izmaiņa',
@@ -1633,7 +1633,7 @@ Katrā rindiņā ir saites uz pirmo un otro pāradresācijas lapu, kā arī pirm
 'listusers-editsonly' => 'Rādīt tikai lietotājus, kas ir izdarījuši kādas izmaiņas',
 'listusers-creationsort' => 'Kārtot pēc izveidošanas datuma',
 'usereditcount' => '$1 {{PLURAL:$1|izmaiņa|izmaiņas}}',
-'usercreated' => 'Izveidots $1, $2',
+'usercreated' => '{{GENDER:$3|Izveidoja}} $1 plkst. $2',
 'newpages' => 'Jaunas lapas',
 'newpages-username' => 'Lietotājs:',
 'ancientpages' => 'Vecākās lapas',
index 447bae3..03f2529 100644 (file)
  * @author Shinjiman
  */
 
+$specialPageAliases = array(
+       'Activeusers'               => array( '躍簿' ),
+       'Allmessages'               => array( '官話' ),
+       'Allpages'                  => array( '全典' ),
+       'Ancientpages'              => array( '陳年' ),
+       'Blankpage'                 => array( '白頁' ),
+       'Booksources'               => array( '書海' ),
+       'BrokenRedirects'           => array( '斷渡' ),
+       'Categories'                => array( '類' ),
+       'ChangePassword'            => array( '易符節' ),
+       'ComparePages'              => array( '較頁' ),
+       'Confirmemail'              => array( '核郵驛' ),
+       'Contributions'             => array( '功績' ),
+       'CreateAccount'             => array( '增簿' ),
+       'Deadendpages'              => array( '此無路也' ),
+       'DeletedContributions'      => array( '已刪之積' ),
+       'Disambiguations'           => array( '釋義' ),
+       'DoubleRedirects'           => array( '窮渡' ),
+       'EditWatchlist'             => array( '治哨站' ),
+       'Emailuser'                 => array( '遺書' ),
+       'Export'                    => array( '出匯' ),
+       'Fewestrevisions'           => array( '鮮察' ),
+       'FileDuplicateSearch'       => array( '擇重檔' ),
+       'Filepath'                  => array( '檔路' ),
+       'Import'                    => array( '圖入匯' ),
+       'Invalidateemail'           => array( '消核郵驛' ),
+       'BlockList'                 => array( '列禁簿、禁址' ),
+       'LinkSearch'                => array( '尋網連' ),
+       'Listfiles'                 => array( '見檔' ),
+       'Listgrouprights'           => array( '權任一覽' ),
+       'Listredirects'             => array( '表轉' ),
+       'Listusers'                 => array( '點簿' ),
+       'Lockdb'                    => array( '閉庫' ),
+       'Log'                       => array( '誌' ),
+       'Lonelypages'               => array( '孤寡' ),
+       'Longpages'                 => array( '長言' ),
+       'MergeHistory'              => array( '併頁之誌' ),
+       'MIMEsearch'                => array( '篩檔' ),
+       'Mostcategories'            => array( '跨船' ),
+       'Mostimages'                => array( '名檔' ),
+       'Mostlinked'                => array( '好料' ),
+       'Mostlinkedcategories'      => array( '豪門' ),
+       'Mostlinkedtemplates'       => array( '美模' ),
+       'Mostrevisions'             => array( '屢審' ),
+       'Movepage'                  => array( '遷' ),
+       'Mycontributions'           => array( '吾績' ),
+       'Newimages'                 => array( '新圖之廊' ),
+       'Newpages'                  => array( '新灶' ),
+       'Preferences'               => array( '簿註' ),
+       'Prefixindex'               => array( '依名索引' ),
+       'Protectedpages'            => array( '頁錮' ),
+       'Randompage'                => array( '清風翻書' ),
+       'Randomredirect'            => array( '任渡' ),
+       'Recentchanges'             => array( '近易' ),
+       'Recentchangeslinked'       => array( '援引' ),
+       'Search'                    => array( '尋' ),
+       'Shortpages'                => array( '短篇' ),
+       'Specialpages'              => array( '特查' ),
+       'Statistics'                => array( '彙統' ),
+       'Uncategorizedcategories'   => array( '問栓' ),
+       'Uncategorizedimages'       => array( '候裱' ),
+       'Uncategorizedpages'        => array( '欲訂' ),
+       'Uncategorizedtemplates'    => array( '待蘸' ),
+       'Undelete'                  => array( '覽刪' ),
+       'Unlockdb'                  => array( '開庫' ),
+       'Unusedcategories'          => array( '樞鏽' ),
+       'Unusedimages'              => array( '色褪' ),
+       'Unusedtemplates'           => array( '墨乾' ),
+       'Unwatchedpages'            => array( '無哨頁' ),
+       'Upload'                    => array( '進獻' ),
+       'UploadStash'               => array( '貢貯' ),
+       'Userlogin'                 => array( '登簿' ),
+       'Userlogout'                => array( '去簿' ),
+       'Userrights'                => array( '秉治權任' ),
+       'Version'                   => array( '版' ),
+       'Wantedcategories'          => array( '求門' ),
+       'Wantedfiles'               => array( '求檔' ),
+       'Wantedpages'               => array( '徵頁' ),
+       'Wantedtemplates'           => array( '徵模' ),
+       'Watchlist'                 => array( '哨站' ),
+       'Whatlinkshere'             => array( '取佐' ),
+       'Withoutinterwiki'          => array( '孤語' ),
+);
+
 /**
  * A list of date format preference keys which can be selected in user
  * preferences. New preference keys can be added, provided they are supported
@@ -59,13 +143,6 @@ $digitTransformTable = array(
        ',' => '',
 );
 
-# -------------------------------------------------------------------
-# Default messages
-# -------------------------------------------------------------------
-# Allowed characters in keys are: A-Z, a-z, 0-9, underscore (_) and
-# hyphen (-). If you need more characters, you may be able to change
-# the regex in MagicWord::initRegex
-
 $messages = array(
 # User preference toggles
 'tog-underline' => '鏈墊線:',
@@ -1193,7 +1270,7 @@ $1",
 'nchanges' => '$1易',
 'recentchanges' => '近易',
 'recentchanges-legend' => '近易項',
-'recentchangestext' => '共筆揮新,悉列於此。',
+'recentchanges-summary' => '共筆揮新,悉列於此。',
 'recentchanges-feed-description' => '跟wiki源之近易。',
 'recentchanges-label-newpage' => '此纂開新頁',
 'recentchanges-label-minor' => '此乃細纂',
index 593d127..469b493 100644 (file)
@@ -10,6 +10,7 @@
  * @author Bombola
  * @author Dato deutschland
  * @author Dawid Deutschland
+ * @author Erdemaslancan
  * @author Ibero-kolxi
  * @author Reedy
  * @author The Evil IP address
@@ -112,7 +113,10 @@ $messages = array(
 
 # Vector skin
 'vector-action-delete' => 'Jili',
+'vector-action-protect' => 'İçvi',
+'vector-view-create' => 'dokʼidi',
 'vector-view-edit' => 'Doktiri',
+'variants' => "Variant'epe",
 
 'errorpagetitle' => 'Çilata',
 'returnto' => '$1 butʼkʼaşa goikti.',
@@ -327,6 +331,7 @@ Oxo3ʼonapape: (a3ʼineri) = a3ʼineri versiyoni kʼala na ren farkʼi,
 'search-interwiki-more' => '(çkva)',
 'search-mwsuggest-enabled' => 'okʼvandupete',
 'search-mwsuggest-disabled' => 'okʼvandu varen',
+'searchall' => 'mteli',
 'nonefound' => "'''Notʼi''': Xvala, namtini svacoxope maartani oqʼopinot igoren.
 Ogoruşi dudis '''all:''' pʼrefiksi okʼatute doloçʼareli na ren iri şeyi (oğarğaluşi butʼkʼape, şablonepe, doçkva şeyepeti iqʼvasen) mgori varna pʼrefiksi oqʼopinot na igoren svacoxo ixmarit.",
 'powersearch' => 'Mordineri ogoru',
@@ -405,7 +410,10 @@ Ogoruşi dudis '''all:''' pʼrefiksi okʼatute doloçʼareli na ren iri şeyi (o
 'uploadlogpage' => 'Dosya oncğonu kʼayitʼepe',
 'uploadedimage' => 'Siteşa na incğonen resimi: "[[$1]]"',
 
+'license-header' => 'Lisans',
+
 # File description page
+'file-anchor-link' => 'Dosya',
 'filehist' => 'Dosyaşi tarixi',
 'filehist-help' => 'Dosyaşi tarixi oz*iru şeni Ndğa/Ora burme-muşis na renan tarixepes o3ʼkʼedi.',
 'filehist-deleteall' => 'mteli jili',
@@ -549,6 +557,7 @@ Am butʼkʼaşi oçvuşi sinori gaktirinen; ama am oktiroba, kʼademoni oçvalu
 
 'sp-contributions-newbies' => 'Xvala ağani maxmarepeşi meşvelape ko3ʼiri',
 'sp-contributions-blocklog' => 'Bloğiş kʼayitʼi',
+'sp-contributions-talk' => 'Mesaji',
 'sp-contributions-search' => 'Meşvelape mgori',
 'sp-contributions-username' => 'IP varna maxmare:',
 'sp-contributions-submit' => 'Mgori',
@@ -616,6 +625,9 @@ Mu iqʼven başka coxo doçʼari.',
 # Export
 'export' => 'Butʼkʼa ikʼayitʼi',
 
+# Namespace 8 related
+'allmessagesname' => 'Coxo',
+
 # Thumbnails
 'thumbnail-more' => 'Didi qʼvi',
 
index f4abaed..aae0d93 100644 (file)
@@ -17,6 +17,7 @@
  * @author Meno25
  * @author Priyanka.rachna.jha
  * @author Rajesh
+ * @author Reedy
  * @author Umeshberma
  * @author Vinitutpal
  */
@@ -336,7 +337,7 @@ $1',
 अहाँ सार्वत्रिक विभव संकेतक गलत टंकण केने हएब, वा कोनो गलत लिंकक पाछाँ गेल हएब।
 ई {{अन्तर्जाल}} प्रयोक्ता द्वारा प्रयुक्त तंत्रांशमे स्थित कोनो दोषक संकेत सेहो कऽ सकैए।',
 'nosuchspecialpage' => 'एहेन कोनो विशेष पन्ना नै',
-'nospecialpagetext' => '<गाढ़> अहाँ एकटा अमान्य पन्नाक आग्रह केने छी। </गाढ़>
+'nospecialpagetext' => '<strong> अहाँ एकटा अमान्य पन्नाक आग्रह केने छी। </strong>
 मान्य विशेष पन्नाक सूची एतए अछि [[Special:SpecialPages|{{int:specialpages}}]]।',
 
 # General errors
@@ -1332,7 +1333,7 @@ $3 द्वारा देल कारण अछि ''$2''",
 'nchanges' => '$1 {{PLURAL:$1|परिवर्त्तन|परिवर्त्तन}}',
 'recentchanges' => 'लगक परिवर्तन सभ',
 'recentchanges-legend' => 'नव परिवर्तन सभक विकल्प सभ',
-'recentchangestext' => 'ऐ पन्नापर विकीमे भेल सभसँ अद्यतन परिवर्तनपर नजरि राखू।',
+'recentchanges-summary' => 'ऐ पन्नापर विकीमे भेल सभसँ अद्यतन परिवर्तनपर नजरि राखू।',
 'recentchanges-feed-description' => 'ऐ सूचना-तंत्रांशमे विकीमे भेल सभसँ लगक परिवर्तन ताकू',
 'recentchanges-label-newpage' => 'ई सम्पादन एकटा नव पन्नाक निर्माण केलक।',
 'recentchanges-label-minor' => 'ई एकटा लघु सम्पादन छी',
@@ -2739,7 +2740,7 @@ $1',
 'file-info' => 'संचिका आकार: $1, माइम प्रकार: $2',
 'file-info-size' => '$1 × $2 चित्राणु, फाइल आकार: $3, माइम प्रकार: $4',
 'file-info-size-pages' => '$1 × $2 चित्रकण, संचिका आकार : $3, माइम प्रकार: $4, $5 {{PLURAL:$5|पन्ना|पन्ना सभ}}',
-'file-nohires' => '<छोट>ऐसँ बेशी आनन्तर्य उपलब्ध नै अछि।</छोट>',
+'file-nohires' => 'ऐसँ बेशी आनन्तर्य उपलब्ध नै अछि।',
 'svg-long-desc' => 'एस.वी.जी. फाइल, मामूली रूपमे $1 × $2 चित्रकण, फाइलक आकार: $3',
 'show-big-image' => 'पूर्ण आनन्तर्य',
 'show-big-image-preview' => 'ऐ पूर्वदृश्यक आकार: $1.',
index 435b6e4..1e462df 100644 (file)
@@ -1183,7 +1183,7 @@ Aja kuatir, alamat imele Rika ora ditidokna dong pangganggo sejen ngontak Rika.'
 'nchanges' => '$1 {{PLURAL:$1|pangowahan|owah-owahan}}',
 'recentchanges' => 'Pengobahan',
 'recentchanges-legend' => 'Opsi owahan anyar',
-'recentchangestext' => 'Runutna owah-owahan anyare wiki nang kaca kiye.',
+'recentchanges-summary' => 'Runutna owah-owahan anyare wiki nang kaca kiye.',
 'recentchanges-feed-description' => "Urutna owah-owahan anyare wiki nang ''feed'' kiye.",
 'recentchanges-label-newpage' => 'Suntingan kiye gawé kaca anyar',
 'recentchanges-label-minor' => 'Kiye suntingan cilik',
index a72dd64..e25ebbd 100644 (file)
@@ -1180,7 +1180,7 @@ $3 макссь туфталсь - ''$2''",
 'nchanges' => '$1 {{PLURAL:$1|полафнема|полафнемат}}',
 'recentchanges' => 'Мекольце полафнемат',
 'recentchanges-legend' => 'Мекольце полафнематнень арафнемасна',
-'recentchangestext' => 'Ваномс сяда мекольце Викиса полафнематнень мельге тя лопаса.',
+'recentchanges-summary' => 'Ваномс сяда мекольце Викиса полафнематнень мельге тя лопаса.',
 'recentchanges-feed-description' => 'Ваномс сяда мекольце Викиса полафнематнень мельге тя шудемаса.',
 'rcnote' => "Ала {{PLURAL:$1|мекольце '''1''' полафнема|мекольце '''$1''' полафнемат}} '''$2''' ётай  {{PLURAL:$2|шис|шис}}, $5, $4ста.",
 'rcnotefrom' => "Ала няфтезь полафнематне '''$2'''-ста ('''$1'''-с).",
index 7ea25a6..08045b6 100644 (file)
@@ -896,6 +896,7 @@ Nilaina io tsy fanekena io mba tsy hikatso ilay pejy.
 Misy io olana io rehefa mamppiasa serveur mandataire tsy manana anarana sy manan-olana eo amin'ny tranonkala ianao.",
 'edit_form_incomplete' => "'''Misy tsy tonga tany amin'ny lohamilina ny singan'ity pejy fenoina ity. Azonao ampiana ny mpandika hafa amin'ny famoronana ny fanazavana ity pejy ity.",
 'editing' => "Manova an'i $1",
+'creating' => "Famoronana an'i $1",
 'editingsection' => 'Fanovana $1 (fizarana)',
 'editingcomment' => 'Fanovana $1 (fizarana vaovao)',
 'editconflict' => 'Fanovana mifandona : $1',
@@ -1497,7 +1498,7 @@ Tsy haseho ny adiresy imailakao rehefa manoratra any aminao ny mpikambana hafa."
 'nchanges' => '{{PLURAL:$1|fanovana|fanovana}} $1',
 'recentchanges' => 'Fanovana farany',
 'recentchanges-legend' => 'Safidy ny fanovàna farany',
-'recentchangestext' => "Jereo eto amin'ity pejy ity izay vao niova vao haingana teto amin'ity wiki ity.",
+'recentchanges-summary' => "Jereo eto amin'ity pejy ity izay vao niova vao haingana teto amin'ity wiki ity.",
 'recentchanges-feed-description' => "Arao ny fanovàna farany amin'ity wiki ity anaty topa",
 'recentchanges-label-newpage' => 'Namorona pejy vaovao io fanovana io',
 'recentchanges-label-minor' => 'Kely fotsiny ity fanovana ity',
index a4f0ea0..42ca8c7 100644 (file)
@@ -601,7 +601,7 @@ $messages = array(
 'nchanges' => '$1 {{PLURAL:$1|тӧрлатымаш|тӧрлатымаш-влак}}',
 'recentchanges' => 'Пытартыш тӧрлатымаш-влак',
 'recentchanges-legend' => 'Пытартыш тӧрлатымаш-влакын келыштарымашышт',
-'recentchangestext' => 'Тиде лаштыкыште пытартыш тӧрлатымашым шекланаш.',
+'recentchanges-summary' => 'Тиде лаштыкыште пытартыш тӧрлатымашым шекланаш.',
 'recentchanges-feed-description' => 'Тиде кылыште пытартыш тӧрлатымашым шекланаш.',
 'recentchanges-label-newpage' => 'Тиде тӧрлатымаш дене у лаштыкым ыштеныт',
 'recentchanges-label-minor' => 'Тиде изирак тӧрлатымаш',
index 20a65ac..a71605a 100644 (file)
@@ -850,7 +850,7 @@ Alamaik surek elektronik awak ang tu indak kan katahuan dek urang lain nan mangh
 'nchanges' => '$1 {{PLURAL:$1|parubahan|parubahan}}',
 'recentchanges' => 'Parubahan baru',
 'recentchanges-legend' => 'Pilihan parubahan baru',
-'recentchangestext' => 'Manjajak parubahan terbaru dalam wiki di laman ko.',
+'recentchanges-summary' => 'Manjajak parubahan terbaru dalam wiki di laman ko.',
 'recentchanges-feed-description' => 'Temukan parubahan baru dalam umpan wiki ko',
 'recentchanges-label-newpage' => 'Suntiang ko mambuek laman baru',
 'recentchanges-label-minor' => 'Iko di suntiang saketek',
index adbe6af..64b89e6 100644 (file)
@@ -122,6 +122,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'ПатДоПодатотека' ),
        'Import'                    => array( 'Увоз' ),
        'Invalidateemail'           => array( 'ПогрешнаЕпошта' ),
+       'JavaScriptTest'            => array( 'ПробаНаJavaСкрипта' ),
        'BlockList'                 => array( 'СписокНаБлокираниIP' ),
        'LinkSearch'                => array( 'ПребарајВрска' ),
        'Listadmins'                => array( 'СписокНаАдминистратори' ),
@@ -190,7 +191,7 @@ $specialPageAliases = array(
        'Wantedtemplates'           => array( 'ПотребниШаблони' ),
        'Watchlist'                 => array( 'СписокНаНабљудувања' ),
        'Whatlinkshere'             => array( 'ШтоВодиОвде' ),
-       'Withoutinterwiki'          => array( 'Ð\91езÐ\98нÑ\82еÑ\80вики' ),
+       'Withoutinterwiki'          => array( 'Ð\91езÐ\9cеÑ\93Ñ\83вики' ),
 );
 
 $magicWords = array(
@@ -372,7 +373,7 @@ $messages = array(
 'tog-diffonly' => 'Не ја покажувај содржината на страницата под разликите',
 'tog-showhiddencats' => 'Прикажи скриени категории',
 'tog-noconvertlink' => 'Оневозможи претворање на наслов на врска',
-'tog-norollbackdiff' => 'Ð\98зоÑ\81Ñ\82ави Ñ\98а Ñ\80азликаÑ\82а Ð¿Ð¾ Ð¸Ð·Ð²Ñ\80Ñ\88ено Ð²Ñ\80аÑ\9cање',
+'tog-norollbackdiff' => 'Ð\98зоÑ\81Ñ\82ави Ñ\98а Ñ\80азликаÑ\82а Ð¿Ð¾ Ð¸Ð·Ð²Ñ\80Ñ\88ено Ð¾Ñ\82повикÑ\83вање',
 
 'underline-always' => 'Секогаш',
 'underline-never' => 'Никогаш',
@@ -1047,7 +1048,7 @@ $2
 'creating' => 'Создавање на $1',
 'editingsection' => 'Уредување на $1 (пасус)',
 'editingcomment' => 'Уредување на $1 (ново заглавие)',
-'editconflict' => 'Ð\9aонÑ\84ликÑ\82ни уредувања: $1',
+'editconflict' => 'СпÑ\80оÑ\82иÑ\81Ñ\82авени уредувања: $1',
 'explainconflict' => "Некој друг ја променил страницата откако почнавте да ја уредувате.
 Горниот дел за текст ја содржи страницата како што сега постои.
 Вашите промени се прикажани во долниот дел.
@@ -1099,7 +1100,7 @@ $2
 'recreate-moveddeleted-warn' => "Внимание: Повторно создавате страница што претходно била бришена.'''
 
 Размислете дали е правилно да продолжите со уредување на оваа страница.
-Подолу е прикажан дневникот на бришења и преместувања на оваа страница за ваш преглед:",
+Подолу е прикажан дневникот на бришења и преместувања на оваа страница:",
 'moveddeleted-notice' => 'Оваа страница била претходно бришена.
 Дневникот на бришења и преместувања за оваа страница е прикажан подолу за ваше дополнително информирање.',
 'log-fulllog' => 'Преглед на целиот дневник',
@@ -1107,7 +1108,7 @@ $2
 Не е дадено никакво образложение.',
 'edit-gone-missing' => 'Не можев да ја подновам страницата.
 Веројатно е избришана.',
-'edit-conflict' => 'Ð\9aонÑ\84ликÑ\82но Ñ\83Ñ\80едÑ\83ваÑ\9aе.',
+'edit-conflict' => 'СпÑ\80оÑ\82иÑ\81Ñ\82авеноÑ\81Ñ\82 Ð²Ð¾ Ñ\83Ñ\80едÑ\83ваÑ\9aеÑ\82о.',
 'edit-no-change' => 'Вашите уредувања беа игнорирани, бидејќи не се направени промени врз текстот.',
 'edit-already-exists' => 'Не може да се создаде нова страница.
 Истата веќе постои.',
@@ -1137,9 +1138,9 @@ $2
 # "Undo" feature
 'undo-success' => 'Уредувањето може да се откаже.
 Ве молиме споредете ги промените со претходната верзија за да проверите дали тоа е сигурно она што сакате да го направите, а потоа зачувајте ги промените за да го завршите откажувањето на претходното уредување.',
-'undo-failure' => 'УÑ\80едÑ\83ваÑ\9aеÑ\82о Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\88е Ð´Ð° Ñ\81е Ð¾Ñ\82каже Ð·Ð°Ñ\80ади Ð´Ñ\80Ñ\83ги ÐºÐ¾Ð½Ñ\84ликÑ\82ни Ñ\83Ñ\80едÑ\83ваÑ\9aа ÐºÐ¾Ð¸ Ð½Ð°Ñ\81Ñ\82анале Ð²Ð¾ Ð¼ÐµÑ\93Ñ\83вÑ\80еме.',
+'undo-failure' => 'УÑ\80едÑ\83ваÑ\9aеÑ\82о Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\88е Ð´Ð° Ñ\81е Ð¾Ñ\82каже Ð·Ð°Ñ\80ади Ð¼ÐµÑ\93Ñ\83вÑ\80емени Ñ\81пÑ\80оÑ\82иÑ\81Ñ\82авени Ñ\83Ñ\80едÑ\83ваÑ\9aа.',
 'undo-norev' => 'Измената не можеше да биде вратена бидејќи не постои или била избришана.',
-'undo-summary' => 'Откажано уредување $1 од ([[Special:Contributions/$2|$2]] | [[Разговор со корисник:$2|Разговор]])',
+'undo-summary' => 'Откажано уредувањето $1 на уредникот [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]])',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Не може да се создаде корисничка сметка',
@@ -1149,7 +1150,7 @@ $2
 
 # History pages
 'viewpagelogs' => 'Преглед на дневници за оваа страница',
-'nohistory' => 'Ð\9dе Ð¿Ð¾Ñ\81Ñ\82ои Ð¸Ñ\81Ñ\82оÑ\80иÑ\98а Ð½Ð° Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð·Ð° Ð¾Ð²Ð°Ð° Ñ\81Ñ\82Ñ\80аниÑ\86а.',
+'nohistory' => 'СÑ\82Ñ\80аниÑ\86аÑ\82а Ð½ÐµÐ¼Ð° Ð¸Ñ\81Ñ\82оÑ\80иÑ\98а Ð½Ð° Ñ\83Ñ\80едÑ\83ваÑ\9aе.',
 'currentrev' => 'Тековна ревизија',
 'currentrev-asof' => 'Последна ревизија од $1',
 'revisionasof' => 'Ревизија од $1',
@@ -1306,9 +1307,9 @@ $1",
 'mergelogpagetext' => 'Следи список на скорешни спојувања на истории на страници.',
 
 # Diffs
-'history-title' => 'Историја на измените на „$1“',
-'difference-title' => 'Разлика помеѓу ревизиите на „$1“',
-'difference-title-multipage' => 'Разлика помеѓу страниците „$1“ и „$2“',
+'history-title' => '$1: Историја на измените',
+'difference-title' => '$1: Разлика помеѓу ревизиите',
+'difference-title-multipage' => '$1 и $2: Разлика помеѓу страниците',
 'difference-multipage' => '(Разлики помеѓу страници)',
 'lineno' => 'Ред $1:',
 'compareselectedversions' => 'Спореди избрани ревизии',
@@ -1398,7 +1399,7 @@ $1",
 'mypreferences' => 'мои нагодувања',
 'prefs-edits' => 'Број на уредувања:',
 'prefsnologin' => 'Не сте најавени',
-'prefsnologintext' => 'Мора да сте <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} најавени]</span> за промена на вашите кориснички нагодувања.',
+'prefsnologintext' => 'Мора да бидете <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} најавени]</span> за да ги менувате вашите кориснички нагодувања.',
 'changepassword' => 'Смени лозинка',
 'prefs-skin' => 'Руво',
 'skin-preview' => 'Преглед',
@@ -1406,6 +1407,7 @@ $1",
 'prefs-beta' => 'Бета-можности',
 'prefs-datetime' => 'Датум и време',
 'prefs-labs' => 'Експериментални можности',
+'prefs-user-pages' => 'Кориснички страници',
 'prefs-personal' => 'Кориснички профил',
 'prefs-rc' => 'Скорешни промени',
 'prefs-watchlist' => 'Список на набљудувања',
@@ -1465,7 +1467,7 @@ $1",
 'prefs-custom-css' => 'Посебно CSS',
 'prefs-custom-js' => 'Посебно JS',
 'prefs-common-css-js' => 'Заеднички CSS/JS за сите изгледи:',
-'prefs-reset-intro' => 'Може да ја користите оваа страница за враќање на вашите нагодувања на основно-зададените нагодувања на викито. Оваа не може да се врати.',
+'prefs-reset-intro' => 'Може да ја користите оваа страница за враќање на вашите нагодувања на основно-зададените нагодувања на викито. Ова дејство е неповратно.',
 'prefs-emailconfirm-label' => 'Потврда на е-пошта:',
 'prefs-textboxsize' => 'Големина на полето за уредување',
 'youremail' => 'Е-пошта:',
@@ -1591,7 +1593,7 @@ $1",
 'right-deletedtext' => 'Прегледување на избришан текст и промени помеѓу избришани ревизии',
 'right-browsearchive' => 'Пребарување на избришани страници',
 'right-undelete' => 'Обновување избришана страница',
-'right-suppressrevision' => 'Ð\9fÑ\80егледÑ\83ваÑ\9aе Ð¸ Ð²Ñ\80аÑ\9cаÑ\9aе Ð½Ð° Ñ\80евизии Ñ\81окÑ\80иени Ð¾Ð´ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80и',
+'right-suppressrevision' => 'Прегледување и враќање на ревизии скриени од администратори',
 'right-suppressionlog' => 'Гледање на приватни дневници',
 'right-block' => 'Оневозможување на останати корисници да уредуваат',
 'right-blockemail' => 'Оневозможување корисници да праќаат е-пошта',
@@ -1605,7 +1607,7 @@ $1",
 'right-editusercssjs' => 'Уредување на CSS и JS податотеки на други корисници',
 'right-editusercss' => 'Уредување на CSS податотеки на други корисници',
 'right-edituserjs' => 'Уредување на JS податотеки на други корисници',
-'right-rollback' => 'Брзо отстранување на уредувањата на последниот корисник кој уредувал одредена страница',
+'right-rollback' => 'Брзо отповикување на уредувањата на последниот корисник што уредувал одредена страница',
 'right-markbotedits' => 'Означување на вратени уредувања како ботовски уредувања',
 'right-noratelimit' => 'Без временски ограничувања на уредување',
 'right-import' => 'Увезување страници од други викија',
@@ -1654,7 +1656,7 @@ $1",
 'action-suppressionlog' => 'преглед на овој приватен дневник',
 'action-block' => 'оневозможи го овој корисник да уредува',
 'action-protect' => 'измени го степенот на заштита на оваа страница',
-'action-rollback' => 'бÑ\80зо Ð²Ñ\80аÑ\9cање на измени направени од последниот уредник на страницата',
+'action-rollback' => 'бÑ\80зо Ð¾Ñ\82повикÑ\83вање на измени направени од последниот уредник на страницата',
 'action-import' => 'увези ја оваа страница од друго вики',
 'action-importupload' => 'увези ја оваа страница од подигната податотека',
 'action-patrol' => 'означи ги уредувањата на другите како проверени',
@@ -1670,10 +1672,10 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|промена|промени}}',
 'recentchanges' => 'Скорешни промени',
 'recentchanges-legend' => 'Нагодувања за скорешни промени',
-'recentchangestext' => 'На оваа страница ги следите скорешните промени на викито.',
+'recentchanges-summary' => 'На оваа страница ги следите скорешните промени на викито.',
 'recentchanges-feed-description' => 'Следење на најскорешните промени на викито во овие емитувања.',
 'recentchanges-label-newpage' => 'Ова уредување создаде нова страница',
-'recentchanges-label-minor' => 'Ð\9eва Ðµ Ñ\81иÑ\82но Ñ\83Ñ\80едÑ\83ваÑ\9aе',
+'recentchanges-label-minor' => 'Ð\9eва Ðµ Ñ\81иÑ\82на Ð¿Ñ\80омена',
 'recentchanges-label-bot' => 'Ова уредување е направено од бот',
 'recentchanges-label-unpatrolled' => 'Ова уредување сè уште не било патролирано',
 'rcnote' => "Подолу {{PLURAL:$1|е прикажана '''1''' промена|се прикажани последните '''$1''' промени}} {{PLURAL:$2|за денес|во последниве '''$2''' дена}}, заклучно со $5, $4.",
@@ -1882,14 +1884,15 @@ $1',
 'backend-fail-writetemp' => 'Не можев да запишам во привремената податотека.',
 'backend-fail-closetemp' => 'Не можев да ја затворам привремената податотека.',
 'backend-fail-read' => 'Не можев да ја прочитам податотеката $1',
-'backend-fail-create' => 'Не можев да ја создадам податотеката $1',
-'backend-fail-maxsize' => 'Не можев да ја создадам податотеката $1 бидејќи е поголема од {{PLURAL:$2|$2 бајт|$2 бајти}}.',
+'backend-fail-create' => 'Не можев да ја запишам податотеката $1.',
+'backend-fail-maxsize' => 'Не можев да ја запишам податотеката $1 бидејќи е поголема од {{PLURAL:$2|еден бајт|$2 бајти}}.',
 'backend-fail-readonly' => 'Складишната основа „$1“ моментално не може да се запишува. Наведената причина гласи: „$2“',
 'backend-fail-synced' => 'Податотеката „$1“ е во состојба недоследна во рамките на внатрешните складишни основи',
 'backend-fail-connect' => 'Не можев да се поврзам со складишната основа „$1“.',
 'backend-fail-internal' => 'Се појави непозната грешка во складишната основа „$1“.',
 'backend-fail-contenttype' => 'Не можев да утврдам каква содржина има податотеката што треба да ја складирам во „$1“.',
 'backend-fail-batchsize' => 'Складишната основа доби блок од $1 податочна {{PLURAL:$1|операција|операции}}, а ограничувањето е $2 {{PLURAL:$2|операција|операции}}.',
+'backend-fail-usable' => 'Не можев да ја запишам податотеката $1 бидејќи немате доволно дозволи или поради тоа што недостасуваат именици/содржатели.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Не можев да се поврзам со дневничката база за складишната основа „$1“.',
@@ -1952,7 +1955,6 @@ $1',
 'http-curl-error' => 'Грешка при добивањето на URL: $1',
 'http-host-unreachable' => 'Не можев да пристапам до URL-адресата',
 'http-bad-status' => 'Се појави проблем во текот на обработката на HTTP-барањето: $1 $2',
-'http-truncated-body' => 'Содржината на барањето не е примена во целост.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Не може да се пристапи до URL-то',
@@ -2451,16 +2453,16 @@ $UNWATCHURL
 продолжете доколку сте сигруни дека треба тоа да го сторите.',
 
 # Rollback
-'rollback' => 'Ð\92Ñ\80аÑ\82и промени',
-'rollback_short' => 'Ð\92Ñ\80аÑ\82и',
-'rollbacklink' => 'Ð\92Ñ\80аÑ\82и',
-'rollbackfailed' => 'Ð\9dеÑ\83Ñ\81пеÑ\88но Ð²Ñ\80аÑ\9cаÑ\9aе',
-'cantrollback' => 'УÑ\80едÑ\83ваÑ\9aеÑ\82о Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ð²Ñ\80аÑ\82и.
+'rollback' => 'Ð\9eÑ\82повикаÑ\98 промени',
+'rollback_short' => 'Ð\9eÑ\82повикаÑ\98',
+'rollbacklink' => 'оÑ\82повикаÑ\98',
+'rollbackfailed' => 'Ð\9eÑ\82повикÑ\83ваÑ\9aеÑ\82о Ð½Ðµ Ñ\83Ñ\81пеа',
+'cantrollback' => 'УÑ\80едÑ\83ваÑ\9aеÑ\82о Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ð¾Ñ\82повика.
 Последниот уредник е воедно и единствениот автор на страницата.',
-'alreadyrolled' => 'Ð\9dе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ð²Ñ\80аÑ\82и Ð¿Ð¾Ñ\81ледноÑ\82о Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð¾Ð´ [[:$1]] Ð½Ð° [[User:$2|$2]] ([[User talk:$2|Разговор]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
-некој друг веќе ја уредил или ги вратил промените на страницата.
+'alreadyrolled' => 'Ð\9dе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ð¾Ñ\82повика Ð¿Ð¾Ñ\81ледноÑ\82о Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а â\80\9e[[:$1]]â\80\9c Ð¸Ð·Ð²Ñ\80Ñ\88ено Ð¾Ð´  [[User:$2|$2]] ([[User talk:$2|Ñ\80азговор]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
+некој друг веќе ја изменил или отповикал страницата.
 
\9fоÑ\81ледноÑ\82о Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð±ÐµÑ\88е Ð½Ð° [[User:$3|$3]] ([[User talk:$3|Разговор]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
\9fоÑ\81ледноÑ\82о Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð³Ð¾ Ð¸Ð·Ð²Ñ\80Ñ\88и [[User:$3|$3]] ([[User talk:$3|Ñ\80азговор]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Коментарот на уредувањето беше: „''$1''“.",
 'revertpage' => 'Отстрането уредувањето на [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]]), вратено на последната верзија на [[User:$1|$1]]',
 'revertpage-nouser' => 'Вратени уредувања на (избришано корисничко име) на последната ревизија од [[User:$1|$1]]',
@@ -2547,9 +2549,9 @@ $UNWATCHURL
 'viewdeletedpage' => 'Прегледај ги избришаните страници',
 'undeletepagetext' => '{{PLURAL:$1|Следната страница била избришана но сè уште е во архивот и може да биде вратена.|Следните $1 страници биле избришани но сè уште се во архивот и можат да бидат вратени.}}
 Архивот може периодично да се чисти.',
-'undelete-fieldset-title' => 'Ð\9eбнови ревизии',
-'undeleteextrahelp' => "За да вратите целосна историја на една страница, отштиклирајте ги сите полиња и притиснете на '''''{{int:undeletebtn}}'''''.
-За да извршите делумно враќање, штиклирајте ги соодветните ревизии за враќање и притиснете на '''''{{int:undeletebtn}}'''''.",
+'undelete-fieldset-title' => 'Ð\92Ñ\80аÑ\82и ревизии',
+'undeleteextrahelp' => "За да вратите целосна историја на една страница, отштиклирајте ги сите полиња и притиснете на „'''{{int:undeletebtn}}'''“.
+За да извршите делумно враќање, штиклирајте ги соодветните ревизии за враќање и притиснете на „'''{{int:undeletebtn}}'''“.",
 'undeleterevisions' => '{{PLURAL:$1|$1 измена е архивирана|$1 измени се архивирани}}',
 'undeletehistory' => 'Ако ја обновите страницата, сите поправки ќе бидат вратени во историјата.
 Ако нова страница со исто име е создадена по бришењето, обновените поправки ќе се појават во претходната историја.',
@@ -2562,16 +2564,16 @@ $UNWATCHURL
 'undeleterevision-missing' => 'Грешна или непостоечка ревизија.
 Можеби имате лоша врска, ревизијата била обновена или избришана од архивата.',
 'undelete-nodiff' => 'Не постои постара ревизија.',
-'undeletebtn' => 'Ð\9eбнови',
+'undeletebtn' => 'Ð\92Ñ\80аÑ\82и',
 'undeletelink' => 'погледај/врати',
 'undeleteviewlink' => 'преглед',
-'undeletereset' => 'Ð\92Ñ\80аÑ\82и',
+'undeletereset' => 'Ð\9eдново',
 'undeleteinvert' => 'Обратен избор',
 'undeletecomment' => 'Причина:',
 'undeletedrevisions' => '{{PLURAL:$1|1 измена е обновена|$1 измени се обновени}}',
 'undeletedrevisions-files' => '{{PLURAL:$1|1 измена|$1 измени}} и {{PLURAL:$2|1 податотека|$2 податотеки}} се вратени',
 'undeletedfiles' => '{{PLURAL:$1|1 податотека е вратена|$1 податотеки се вратени}}',
-'cannotundelete' => 'Враќањето не успеа, некој друг можеби ја вратил страницата претходно.',
+'cannotundelete' => 'Враќањето не успеа. Можеби некој друг веќе ја вратил страницата.',
 'undeletedpage' => "'''$1 беше обновена'''
 
 Погледнете го [[Special:Log/delete|дневникот на бришења]] за попис на претходни бришења и обновувања.",
@@ -3068,7 +3070,7 @@ $1',
 'tooltip-ca-nstab-template' => 'Преглед на шаблонот',
 'tooltip-ca-nstab-help' => 'Преглед на страницата за помош',
 'tooltip-ca-nstab-category' => 'Преглед на категоријата',
-'tooltip-minoredit' => 'Ð\9eбележеÑ\82е ја промената како ситна',
+'tooltip-minoredit' => 'Ð\9eбележи ја промената како ситна',
 'tooltip-save' => 'Зачувајте ги вашите промени',
 'tooltip-preview' => 'Прегледајте ги вашите промени, ве молиме користете го ова пред зачувување!',
 'tooltip-diff' => 'Покажи кои промени ги направи во текстот.',
@@ -3078,11 +3080,10 @@ $1',
 'tooltip-watchlistedit-raw-submit' => 'Поднови го списокот',
 'tooltip-recreate' => 'Повторно создај ја страницата иако е избришана',
 'tooltip-upload' => 'Започни со подигање',
-'tooltip-rollback' => '„Врати“ ги поништува последните уредувања на оваа страница со еден клик до уредувањата на претпоследниот придонесувач',
-'tooltip-undo' => '„Откажи“ го поништува ова уредување и отвора прозорец за уредување.
-Дозволува додавање на причина во описот',
+'tooltip-rollback' => '„Отповикај“ ги повлекува промените на последниот уредник',
+'tooltip-undo' => '„Откажи“ го поништува ова уредување и ве носи на уредувањето во режим на преглед. Дава можност за наведување на причина во описот.',
 'tooltip-preferences-save' => 'Зачувај',
-'tooltip-summary' => 'Ð\92неÑ\81еÑ\82е ÐºÑ\80аÑ\82ко Ñ\80езиме',
+'tooltip-summary' => 'Ð\92неÑ\81еÑ\82е ÐºÑ\80аÑ\82ок Ð¾Ð¿Ð¸Ñ\81',
 
 # Stylesheets
 'common.css' => '/* Тука поставениот CSS ќе се применува врз сите рува */',
index 98ee711..fc95bb6 100644 (file)
@@ -83,6 +83,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'സർവ്വസന്ദേശങ്ങൾ' ),
        'Allpages'                  => array( 'എല്ലാതാളുകളും' ),
        'Ancientpages'              => array( 'പുരാതന_താളുകൾ' ),
+       'Badtitle'                  => array( 'മോശംതലക്കെട്ട്' ),
        'Blankpage'                 => array( 'ശൂന്യതാൾ' ),
        'Block'                     => array( 'തടയുക', 'ഐ.പി.തടയുക', 'ഉപയോക്തൃതടയൽ' ),
        'Blockme'                   => array( 'എന്നെതടയുക' ),
@@ -107,6 +108,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'പ്രമാണവിലാസം' ),
        'Import'                    => array( 'ഇറക്കുമതി' ),
        'Invalidateemail'           => array( 'ഇമെയിൽഅസാധുവാക്കുക' ),
+       'JavaScriptTest'            => array( 'ജാവാസ്ക്രിപ്റ്റ്പരീക്ഷണം' ),
        'BlockList'                 => array( 'തടയൽ‌പട്ടിക', 'ഐപികളുടെ_തടയൽ‌പട്ടിക' ),
        'LinkSearch'                => array( 'കണ്ണികൾ_തിരയുക' ),
        'Listadmins'                => array( 'കാര്യനിർവാഹകപട്ടിക' ),
@@ -219,6 +221,7 @@ $magicWords = array(
        'pagenamee'               => array( '1', 'താളിന്റെപേര്‌സമഗ്രം', 'PAGENAMEE' ),
        'namespace'               => array( '1', 'നാമമേഖല', 'NAMESPACE' ),
        'namespacee'              => array( '1', 'നാമമേഖലസമഗ്രം', 'NAMESPACEE' ),
+       'namespacenumber'         => array( '1', 'നാമമേഖലാസംഖ്യ', 'NAMESPACENUMBER' ),
        'talkspace'               => array( '1', 'സംവാദമേഖല', 'TALKSPACE' ),
        'talkspacee'              => array( '1', 'സംവാദമേഖലസമഗ്രം', 'TALKSPACEE' ),
        'subjectspace'            => array( '1', 'വിഷയമേഖല', 'ലേഖനമേഖല', 'SUBJECTSPACE', 'ARTICLESPACE' ),
@@ -317,6 +320,8 @@ $magicWords = array(
        'url_path'                => array( '0', 'പഥം', 'PATH' ),
        'url_wiki'                => array( '0', 'വിക്കി', 'WIKI' ),
        'url_query'               => array( '0', 'ക്വറി', 'QUERY' ),
+       'defaultsort_noerror'     => array( '0', 'പിഴവില്ല', 'noerror' ),
+       'defaultsort_noreplace'   => array( '0', 'മാറ്റേണ്ടതില്ല', 'noreplace' ),
 );
 
 $digitGroupingPattern = "##,##,###";
@@ -1256,6 +1261,8 @@ $1",
 
 # Diffs
 'history-title' => '"$1" എന്ന താളിന്റെ നാൾവഴി',
+'difference-title' => '"$1" എന്ന താളിന്റെ പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസം',
+'difference-title-multipage' => '"$1", "$2" എന്നീ താളുകൾ തമ്മിലുള്ള വ്യത്യാസം',
 'difference-multipage' => '(താളുകൾ തമ്മിലുള്ള വ്യത്യാസം)',
 'lineno' => 'വരി $1:',
 'compareselectedversions' => 'തിരഞ്ഞെടുത്ത പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസം കാണുക',
@@ -1350,6 +1357,7 @@ $1",
 'prefs-beta' => 'പരീക്ഷണാടിസ്ഥാനത്തിലുള്ള സൗകര്യങ്ങൾ',
 'prefs-datetime' => 'ദിവസവും സമയവും',
 'prefs-labs' => 'പരീക്ഷണശാലയിൽ തയ്യാറാകുന്ന സൗകര്യങ്ങൾ',
+'prefs-user-pages' => 'ഉപയോക്തൃതാളുകൾ',
 'prefs-personal' => 'അഹം',
 'prefs-rc' => 'സമീപകാല മാറ്റങ്ങൾ',
 'prefs-watchlist' => 'ശ്രദ്ധിക്കുന്നവ',
@@ -1613,7 +1621,7 @@ $1",
 'nchanges' => '{{PLURAL:$1|ഒരു മാറ്റം|$1 മാറ്റങ്ങൾ}}',
 'recentchanges' => 'സമീപകാല മാറ്റങ്ങൾ',
 'recentchanges-legend' => 'സമീപകാല മാറ്റങ്ങളുടെ ക്രമീകരണം',
-'recentchangestext' => '{{SITENAME}} സംരംഭത്തിലെ ഏറ്റവും പുതിയ മാറ്റങ്ങൾ ഇവിടെ കാണാം.',
+'recentchanges-summary' => '{{SITENAME}} സംരംഭത്തിലെ ഏറ്റവും പുതിയ മാറ്റങ്ങൾ ഇവിടെ കാണാം.',
 'recentchanges-feed-description' => 'ഈ ഫീഡ് ഉപയോഗിച്ച് വിക്കിയിലെ പുതിയ മാറ്റങ്ങൾ നിരീക്ഷിക്കുക.',
 'recentchanges-label-newpage' => 'ഒരു പുതിയ താൾ സൃഷ്ടിച്ചിരിക്കുന്നു',
 'recentchanges-label-minor' => 'ഇതൊരു ചെറിയ തിരുത്താണ്',
@@ -2132,7 +2140,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'allpagesprev' => 'മുമ്പത്തെ',
 'allpagesnext' => 'അടുത്തത്',
 'allpagessubmit' => 'പോകൂ',
-'allpagesprefix' => 'à´ªàµ\82ർവàµ\8dവപദമàµ\81à´³àµ\8dà´³ താളുകൾ പ്രദർശിപ്പിക്കുക:',
+'allpagesprefix' => 'à´\87à´\99àµ\8dà´\99à´¨àµ\86 à´¤àµ\81à´\9fà´\99àµ\8dà´\99àµ\81à´¨àµ\8dà´¨ താളുകൾ പ്രദർശിപ്പിക്കുക:',
 'allpagesbadtitle' => 'താളിനു നൽകിയ തലക്കെട്ട് അസാധുവാണ്‌ അല്ലെങ്കിൽ അന്തർഭാഷയ്ക്കുള്ളതോ അന്തർവിക്കിയ്ക്കുള്ളതോ ആയ പൂർവ്വപദം ഉപയോഗിച്ചിരിക്കുന്നു.
 തലക്കെട്ടിൽ ഉപയോഗിക്കാൻ പാടില്ലാത്ത ഒന്നോ അതിലധികമോ ലിപികൾ ഇതിലുണ്ടാകാം.',
 'allpages-bad-ns' => '{{SITENAME}} സംരംഭത്തിൽ "$1" എന്ന നാമമേഖല നിലവിലില്ല.',
index c28e985..28584fe 100644 (file)
@@ -316,7 +316,7 @@ $1',
 'toc' => 'Агуулга',
 'showtoc' => 'үзүүлэх',
 'hidetoc' => 'нуух',
-'collapsible-collapse' => 'ЭвÑ\85Ñ\8dх',
+'collapsible-collapse' => 'Ð\91Ñ\83Ñ\83лгах',
 'collapsible-expand' => 'Тэлэх',
 'thisisdeleted' => '$1-г харах эсвэл сэргээх үү?',
 'viewdeleted' => '$1-г харах уу?',
@@ -705,6 +705,7 @@ $2',
 'note' => "'''Анхааруулга:'''",
 'previewnote' => "'''Энэ бол зөвхөн урьдчилж харсан байдал.'''
 Таны хийсэн өөрчлөлтүүдийг одоохондоо хадгалаагүй байгаа!",
+'continue-editing' => 'Үргэлжлүүлэн янзлах',
 'previewconflict' => 'Энэ урьдчилж харсан байдал нь дээд талын засварлах талбарын текстийг хадгалахад харагдах байдлыг харуулна.',
 'session_fail_preview' => "'''Уучлаарай! Мэдээлэл алдагдснаас болж таны засварыг боловсруулж чадсангүй. Дахин оролдож үзнэ үү. Ингээд ч болохгүй байвал сайтаас гарч дахин нэвтэрч орж үзнэ үү.'''",
 'session_fail_preview_html' => "'''Уучлаарай! Мэдээлэл алдагдснаас болж таны засварыг боловсруулж чадсангүй.'''
@@ -717,6 +718,7 @@ $2',
 Энэ нь алдаа ихтэй вэбийн нэргүй прокси хэрэглэх үед заримдаа гардаг.'''",
 'edit_form_incomplete' => "'''Таны хийсэн өөрлөлтийн зарим хэсэг нь серверт хүрээгүй бололтой, алдаатай эсэхийг шалгаад дахин оролдоно уу'''",
 'editing' => '$1-г засварлаж байна',
+'creating' => '$1-г үүсгэж байна',
 'editingsection' => '$1-г засварлаж байна (хэсэг)',
 'editingcomment' => '$1-г засварлаж байна (шинэ хэсэг)',
 'editconflict' => 'Засварын зөрөлдөөн боллоо: $1',
@@ -978,7 +980,7 @@ $1",
 'mergelogpagetext' => 'Доорх нь нэг хуудасны түүхийг өөр түүхтэй нэгтгэсэн хамгийн сүүлийн нэгтгэлүүд юм.',
 
 # Diffs
-'history-title' => '"$1"-н засварын түүх',
+'history-title' => '"$1"-н хянасан түүх',
 'difference-multipage' => '(Хуудсууд хоорондын ялгаа)',
 'lineno' => '$1-р мөр:',
 'compareselectedversions' => 'Сонгосон хувилбаруудыг харьцуулах',
@@ -1335,7 +1337,7 @@ $1 тэмдэгтээс богино байх ёстой.',
 'nchanges' => '$1 өөрчлөлт',
 'recentchanges' => 'Сүүлийн өөрчлөлтүүд',
 'recentchanges-legend' => 'Сүүлийн өөрчлөлтүүдийн сонголтууд',
-'recentchangestext' => 'Энэхүү хуудсанд викид хийсэн хамгийн сүүлийн өөрчлөлтүүдийг үзүүлж байна.',
+'recentchanges-summary' => 'Энэхүү хуудсанд викид хийсэн хамгийн сүүлийн өөрчлөлтүүдийг үзүүлж байна.',
 'recentchanges-feed-description' => 'Вики дахь хамгийн сүүлийн өөрчлөлтүүдийг хянах.',
 'recentchanges-label-newpage' => 'Энэ засвар шинэ хуудсыг үүсгэсэн байна',
 'recentchanges-label-minor' => 'Энэ нь бага зэргийн засвар байна',
index 708877c..a108bf4 100644 (file)
@@ -69,47 +69,49 @@ $namespaceAliases = array(
 
 # !!# sqlविचारा is not in normalised form, which is Sqlविचारा or Sqlविचारा
 $specialPageAliases = array(
-       'Activeusers'               => array( 'à¤\95ारà¥\8dयरतसदस्य' ),
+       'Activeusers'               => array( 'सà¤\95à¥\8dरिय_सदस्य' ),
        'Allmessages'               => array( 'सर्व_निरोप' ),
        'Allpages'                  => array( 'सर्व_पाने' ),
        'Ancientpages'              => array( 'जुनी_पाने' ),
-       'Blankpage'                 => array( 'कोरेपान' ),
-       'Block'                     => array( 'प्रतिबंध', 'अंकपत्ताप्रतिबंध', 'सदस्यप्रतिबंध' ),
-       'Blockme'                   => array( 'मलाप्रतिबंधकरा' ),
-       'Booksources'               => array( 'पुस्तकस्रोत' ),
+       'Blankpage'                 => array( 'कोरे_पान' ),
+       'Block'                     => array( 'प्रतिबंध', 'अंकपत्ता_प्रतिबंध', 'सदस्य_प्रतिबंध' ),
+       'Blockme'                   => array( 'मला_प्रतिबंध_करा' ),
+       'Booksources'               => array( 'पुस्तक_स्रोत' ),
        'BrokenRedirects'           => array( 'चुकीची_पुनर्निर्देशने' ),
        'Categories'                => array( 'वर्ग' ),
-       'ChangePassword'            => array( 'परवलीचाशब्दबदला' ),
-       'Confirmemail'              => array( 'विपत्रनक्कीकरा' ),
+       'ChangeEmail'               => array( 'विपत्र_बदला' ),
+       'ChangePassword'            => array( 'परवलीचा_शब्द_बदला' ),
+       'ComparePages'              => array( 'पानांची_तुलना' ),
+       'Confirmemail'              => array( 'विपत्र_नक्की_करा' ),
        'Contributions'             => array( 'योगदान' ),
-       'CreateAccount'             => array( 'सदस्यनोंद' ),
+       'CreateAccount'             => array( 'सदस्य_नोंद' ),
        'Deadendpages'              => array( 'टोकाची_पाने' ),
-       'DeletedContributions'      => array( 'वगळलेलीयोगदाने' ),
-       'Disambiguations'           => array( 'नि:संदिग्धीकरण' ),
+       'DeletedContributions'      => array( 'वगळलेली_योगदाने' ),
+       'Disambiguations'           => array( 'निसंदिग्धीकरण' ),
        'DoubleRedirects'           => array( 'दुहेरी_पुनर्निर्देशने' ),
-       'Emailuser'                 => array( 'विपत्रवापरकर्ता' ),
+       'Emailuser'                 => array( 'विपत्र_वापरकर्ता' ),
        'Export'                    => array( 'निर्यात' ),
-       'Fewestrevisions'           => array( 'कमीतकमीआवर्तने' ),
-       'FileDuplicateSearch'       => array( 'दुहेरीसंचिकाशोध' ),
+       'Fewestrevisions'           => array( 'कमीत_कमी_आवर्तने' ),
+       'FileDuplicateSearch'       => array( 'दुहेरी_संचिका_शोध' ),
        'Filepath'                  => array( 'संचिकेचा_पत्ता_(पाथ)' ),
        'Import'                    => array( 'आयात' ),
-       'Invalidateemail'           => array( 'चूकदिनांकविपत्र' ),
-       'BlockList'                 => array( 'प्रतिबंधनसुची' ),
+       'Invalidateemail'           => array( 'à¤\85à¤\97à¥\8dराहà¥\8dय_विपतà¥\8dर', 'à¤\9aà¥\82à¤\95दिनाà¤\82à¤\95विपतà¥\8dर' ),
+       'BlockList'                 => array( 'प्रतिबंधन_सुची' ),
        'LinkSearch'                => array( 'दुवाशोध' ),
        'Listadmins'                => array( 'प्रबंधकांची_यादी' ),
        'Listbots'                  => array( 'सांगकाम्यांची_यादी' ),
        'Listfiles'                 => array( 'चित्रयादी' ),
        'Listgrouprights'           => array( 'गट_अधिकार_यादी' ),
-       'Listredirects'             => array( 'पुर्ननिर्देशनसुची' ),
+       'Listredirects'             => array( 'पुर्ननिर्देशन_सुची' ),
        'Listusers'                 => array( 'सदस्यांची_यादी' ),
-       'Lockdb'                    => array( 'à¤\95à¥\81लà¥\81पबà¤\82द_à¤\95रा_(डà¥\87à¤\9fाबà¥\87स)' ),
+       'Lockdb'                    => array( 'डà¥\87à¤\9fाबà¥\87स_à¤\95à¥\81लà¥\81पबà¤\82द_à¤\95रा' ),
        'Log'                       => array( 'नोंद', 'नोंदी' ),
-       'Lonelypages'               => array( 'à¤\8fà¤\95लपाने' ),
+       'Lonelypages'               => array( 'à¤\8fà¤\95ाà¤\95à¥\80_पाने' ),
        'Longpages'                 => array( 'मोठी_पाने' ),
        'MergeHistory'              => array( 'इतिहास_एकत्र_करा' ),
-       'MIMEsearch'                => array( 'माईमशोध' ),
+       'MIMEsearch'                => array( 'माईम‌_शोध' ),
        'Mostcategories'            => array( 'सर्वात_जास्त_वर्ग' ),
-       'Mostimages'                => array( 'सर्वाधिकसांधलेलीसंचिका' ),
+       'Mostimages'                => array( 'सर्वाधिक_सांधलेली_संचिका' ),
        'Mostlinked'                => array( 'सर्वात_जास्त_जोडलेली' ),
        'Mostlinkedcategories'      => array( 'सर्वात_जास्त_जोडलेले_वर्ग', 'सर्वात_जास्त_वापरलेले_वर्ग' ),
        'Mostlinkedtemplates'       => array( 'सर्वात_जास्त_जोडलेले_साचे', 'सर्वात_जास्त_वापरलेले_साचे' ),
@@ -118,15 +120,15 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'माझे_योगदान' ),
        'Mypage'                    => array( 'माझे_पान' ),
        'Mytalk'                    => array( 'माझ्या_चर्चा' ),
-       'Newimages'                 => array( 'नवीन_चित्रे' ),
+       'Newimages'                 => array( 'नवà¥\80न_सà¤\82à¤\9aिà¤\95ा', 'नवà¥\80न_à¤\9aितà¥\8dरà¥\87' ),
        'Newpages'                  => array( 'नवीन_पाने' ),
        'Popularpages'              => array( 'प्रसिद्ध_पाने' ),
        'Preferences'               => array( 'पसंती' ),
        'Prefixindex'               => array( 'उपसर्गसुची' ),
        'Protectedpages'            => array( 'सुरक्षित_पाने' ),
        'Protectedtitles'           => array( 'सुरक्षित_शीर्षके' ),
-       'Randompage'                => array( 'अविशिष्ट', 'अविशिष्ट_पृष्ठ' ),
-       'Randomredirect'            => array( 'अविशिष्टपुर्ननिर्देशन' ),
+       'Randompage'                => array( 'à¤\95à¥\8bणतà¥\87हà¥\80', 'à¤\95à¥\8bणतà¥\87हà¥\80_पà¥\83षà¥\8dठ', 'à¤\85विशिषà¥\8dà¤\9f', 'à¤\85विशिषà¥\8dà¤\9f_पà¥\83षà¥\8dठ' ),
+       'Randomredirect'            => array( 'अविशिष्ट_पुर्ननिर्देशन' ),
        'Recentchanges'             => array( 'अलीकडील_बदल' ),
        'Recentchangeslinked'       => array( 'सांधलेलेअलिकडीलबदल' ),
        'Revisiondelete'            => array( 'आवर्तनवगळा' ),
@@ -136,27 +138,27 @@ $specialPageAliases = array(
        'Statistics'                => array( 'सांख्यिकी' ),
        'Tags'                      => array( 'खूणा' ),
        'Uncategorizedcategories'   => array( 'अवर्गीकृत_वर्ग' ),
-       'Uncategorizedimages'       => array( 'अवर्गीकृत_चित्रे' ),
+       'Uncategorizedimages'       => array( 'à¤\85वरà¥\8dà¤\97à¥\80à¤\95à¥\83त_सà¤\82à¤\9aिà¤\95ा', 'à¤\85वरà¥\8dà¤\97à¥\80à¤\95à¥\83त_à¤\9aितà¥\8dरà¥\87' ),
        'Uncategorizedpages'        => array( 'अवर्गीकृत_पाने' ),
        'Uncategorizedtemplates'    => array( 'अवर्गीकृत_साचे' ),
        'Undelete'                  => array( 'काढणे_रद्द_करा' ),
        'Unlockdb'                  => array( 'विदागारताळेउघडा' ),
        'Unusedcategories'          => array( 'न_वापरलेले_वर्ग' ),
        'Unusedimages'              => array( 'न_वापरलेली_चित्रे' ),
-       'Unusedtemplates'           => array( 'नà¤\89पयà¥\8bà¤\97ातà¤\86णलà¥\87लासाà¤\9aा' ),
-       'Unwatchedpages'            => array( 'अप्रेक्षीतपाने' ),
+       'Unusedtemplates'           => array( 'à¤\89पयà¥\8bà¤\97ात_नसलà¥\87लà¥\87_साà¤\9aà¥\87' ),
+       'Unwatchedpages'            => array( 'अप्रेक्षीत_पाने' ),
        'Upload'                    => array( 'चढवा' ),
-       'Userlogin'                 => array( 'सदस्यप्रवेश' ),
-       'Userlogout'                => array( 'सदस्यबहिर्गमन' ),
+       'Userlogin'                 => array( 'सदस्य_प्रवेश' ),
+       'Userlogout'                => array( 'सदस्य‌_बहिर्गमन' ),
        'Userrights'                => array( 'खातेदाराचे_अधिकार' ),
        'Version'                   => array( 'आवृत्ती' ),
        'Wantedcategories'          => array( 'हवे_असलेले_वर्ग' ),
-       'Wantedfiles'               => array( 'संचिकाहवी' ),
+       'Wantedfiles'               => array( 'संचिका_हवी' ),
        'Wantedpages'               => array( 'हवे_असलेले_लेख' ),
-       'Wantedtemplates'           => array( 'साचाहवा' ),
-       'Watchlist'                 => array( 'पहार्‍याची_सूची' ),
+       'Wantedtemplates'           => array( 'साचा_हवा' ),
+       'Watchlist'                 => array( 'नितà¥\8dयâ\80\8c_पहाणà¥\8dयाà¤\9aà¥\80_सà¥\82à¤\9aà¥\80', 'पहारà¥\8dâ\80\8dयाà¤\9aà¥\80_सà¥\82à¤\9aà¥\80' ),
        'Whatlinkshere'             => array( 'येथे_काय_जोडले_आहे' ),
-       'Withoutinterwiki'          => array( 'विनाà¤\86à¤\82तरविà¤\95ि' ),
+       'Withoutinterwiki'          => array( 'à¤\86à¤\82तरविà¤\95ि_शिवाय' ),
 );
 
 $magicWords = array(
@@ -1571,7 +1573,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|बदल|बदल}}',
 'recentchanges' => 'अलीकडील बदल',
 'recentchanges-legend' => 'अलीकडील बदल पर्याय',
-'recentchangestext' => 'विकितील अलीकडील बदल या पानावर दिसतात.',
+'recentchanges-summary' => 'विकितील अलीकडील बदल या पानावर दिसतात.',
 'recentchanges-feed-description' => 'या रसदीमधील विकीवर झालेले सर्वात अलीकडील बदल पहा.',
 'recentchanges-label-newpage' => 'या संपादनाने नवीन पान तयार झाले',
 'recentchanges-label-minor' => 'हा एक छोटा बदल आहे',
@@ -2034,7 +2036,7 @@ Input:contenttype/subtype, e.g. <tt>image/jpeg</tt>.',
 'listusers-editsonly' => 'फक्त संपादनांसहित सदस्य दाखवा',
 'listusers-creationsort' => 'निर्मितीच्या तारखेप्रमाणे लावा',
 'usereditcount' => '$1 {{PLURAL:$1|संपादन|संपादने}}',
-'usercreated' => '{{GENDER:$3|बनावला}} या $1 अत $2',
+'usercreated' => 'सदस्य खाते $3, $1 तारखेला, $2 वाजता बनवले गेले',
 'newpages' => 'नवीन पाने',
 'newpages-username' => 'सदस्य नाव:',
 'ancientpages' => 'जुनी पाने',
@@ -2240,18 +2242,18 @@ $NEWPAGE
 विपत्र: $PAGEEDITOR_EMAIL
 विकि: $PAGEEDITOR_WIKI
 
-तà¥\81मà¥\8dहà¥\80 à¤ªà¤¾à¤¨à¤¾à¤¸ à¤­à¥\87à¤\9f à¤¦à¥\87त à¤¨à¤¾à¤¹à¥\80 à¤¤à¥\8bपरà¥\8dयà¤\82त à¤ªà¥\81ढà¥\87 à¤¹à¥\8bणाऱà¥\8dया à¤¬à¤¦à¤²à¤¾à¤\82à¤\9aà¥\80 à¤\87तर à¤\95à¥\8bणतà¥\80हà¥\80 à¤µà¥\87à¤\97ळà¥\80 à¤¸à¥\82à¤\9aना à¤¨à¤¸à¥\87ल. à¤¤à¥\81मà¥\8dहà¥\80 à¤ªà¤¹à¤¾à¤±à¥\8dयाà¤\9aà¥\80 à¤¸à¥\82à¤\9aà¥\80मधà¥\80ल à¤ªà¤¹à¤¾à¤°à¤¾ à¤ à¥\87वलेल्या पानांकरिताच्या सूचना पताकांचे पुर्नयोजन करु शकता.
+तà¥\81मà¥\8dहà¥\80 à¤ªà¤¾à¤¨à¤¾à¤¸ à¤­à¥\87à¤\9f à¤¦à¥\87त à¤¨à¤¾à¤¹à¥\80 à¤¤à¥\8bपरà¥\8dयà¤\82त à¤ªà¥\81ढà¥\87 à¤¹à¥\8bणाऱà¥\8dया à¤¬à¤¦à¤²à¤¾à¤\82à¤\9aà¥\80 à¤\87तर à¤\95à¥\8bणतà¥\80हà¥\80 à¤µà¥\87à¤\97ळà¥\80 à¤¸à¥\82à¤\9aना à¤¨à¤¸à¥\87ल. à¤¤à¥\81मà¤\9aà¥\8dया à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\8dया à¤¸à¥\82à¤\9aà¥\80मधà¥\80ल à¤\85सलेल्या पानांकरिताच्या सूचना पताकांचे पुर्नयोजन करु शकता.
 
-तà¥\81मà¤\9aà¥\80 à¤®à¥\88तà¥\8dरà¥\80पà¥\82रà¥\8dण {{SITENAME}} à¤¸à¥\81चना प्रणाली
+तà¥\81मà¤\9aà¥\80 à¤®à¥\88तà¥\8dरà¥\80पà¥\82रà¥\8dण {{SITENAME}} à¤¸à¥\82चना प्रणाली
 
 --
 
-तà¥\81मà¤\9aà¥\87 à¤ªà¤¹à¤¾à¤±à¥\8dयातà¥\80ल पानांची मांडणावळ (कोंदण) बदलू शकता, {{canonicalurl:{{#special:EditWatchlist}}}} ला भेट द्या
+तà¥\81मà¤\9aà¥\8dया à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\8dया पानांची मांडणावळ (कोंदण) बदलू शकता, {{canonicalurl:{{#special:EditWatchlist}}}} ला भेट द्या
 
-हà¥\87 à¤ªà¤¾à¤¨ à¤¤à¥\81मà¤\9aà¥\8dया à¤ªà¤¹à¤¾à¤±à¥\8dयाà¤\9aà¥\8dया à¤¸à¥\81à¤\9aà¥\80तà¥\81न à¤\95ाधà¥\81न à¤\9fाà¤\95णà¥\8dयासाठà¥\80 à¤\96लील दुव्यावर टिचकी मारा.
+हà¥\87 à¤ªà¤¾à¤¨ à¤¤à¥\81मà¤\9aà¥\8dया à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\8dया à¤¸à¥\82à¤\9aà¥\80तà¥\81न à¤\95ाढà¥\82न à¤\9fाà¤\95णà¥\8dयासाठà¥\80 à¤\96ालील दुव्यावर टिचकी मारा.
 $UNWATCHURL
 
-पà¥\81ढà¥\80ल à¤¸à¤¹à¤¾à¤¯à¥\8dय à¤\86णि à¤ªà¥\8dरतिà¤\95à¥\8dरà¥\80या:
+पà¥\81ढà¥\80ल à¤¸à¤¾à¤¹à¤¾à¤¯à¥\8dय à¤\86णि à¤ªà¥\8dरतिà¤\95à¥\8dरिया:
 {{canonicalurl:{{MediaWiki:Helppage}}}}',
 
 # Delete
index 62a6fbb..cb482c9 100644 (file)
@@ -1237,6 +1237,7 @@ Cuba berikan awalan ''all:'' untuk mencari semua kandungan (termasuk laman perbi
 'prefs-beta' => 'Ciri-ciri beta',
 'prefs-datetime' => 'Tarikh dan waktu',
 'prefs-labs' => 'Ciri-ciri makmal',
+'prefs-user-pages' => 'Laman pengguna',
 'prefs-personal' => 'Profil',
 'prefs-rc' => 'Perubahan terkini',
 'prefs-watchlist' => 'Senarai pantau',
@@ -1500,7 +1501,7 @@ Tindakan ini tidak boleh dibatalkan.',
 'nchanges' => '$1 perubahan',
 'recentchanges' => 'Perubahan terkini',
 'recentchanges-legend' => 'Pilihan perubahan terkini',
-'recentchangestext' => 'Jejaki perubahan terkini dalam {{SITENAME}} pada laman ini.',
+'recentchanges-summary' => 'Jejaki perubahan terkini dalam {{SITENAME}} pada laman ini.',
 'recentchanges-feed-description' => 'Jejaki perubahan terkini dalam {{SITENAME}} pada suapan ini.',
 'recentchanges-label-newpage' => 'Suntingan ini mencipta laman baru',
 'recentchanges-label-minor' => 'Ini ialah suntingan kecil',
@@ -1700,14 +1701,15 @@ Sila hubungi [[Special:ListUsers/sysop|pentadbir sistem]].',
 'backend-fail-writetemp' => 'Fail sementara tidak dapat ditulisi.',
 'backend-fail-closetemp' => 'Fail sementara tidak dapat ditutup.',
 'backend-fail-read' => 'Fail $1 tidak dapat dibaca.',
-'backend-fail-create' => 'Fail $1 tidak dapat diwujudkan.',
-'backend-fail-maxsize' => 'Fail $1 tidak boleh dibuat kerana melebihi $2 bait.',
+'backend-fail-create' => 'Fail $1 tidak dapat ditulis.',
+'backend-fail-maxsize' => 'Fail $1 tidak boleh ditulis kerana melebihi $2 bait.',
 'backend-fail-readonly' => 'Backend storan "$1" kini dalam mod baca sahaja. Sebab yang diberikan ialah: "$2"',
 'backend-fail-synced' => 'Fail "$1" berada dalam keadaan yang tidak sejajar dalam backend storan dalaman',
 'backend-fail-connect' => 'Tidak dapat bersambung dengan backend storan "$1".',
 'backend-fail-internal' => 'Berlakunya ralat yang tidak dikenali dalam backend storan "$1".',
 'backend-fail-contenttype' => 'Jenis kandungan fail untuk disimpan di "$1" tidak dapat ditentukan.',
 'backend-fail-batchsize' => 'Backend storan diberi $1 operasi fail dalam satu kelompok; hadnya ialah $2 operasi.',
+'backend-fail-usable' => 'Fail $1 tidak boleh ditulis kerana kebenaran tidak memadai atau tertinggal direktori/penyimpan.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Tidak dapat bersambung dengan pangkalan data jurnal untuk backend storan "$1".',
@@ -1769,7 +1771,6 @@ Untuk keselamatan optimum, img_auth.php telah dilumpuhkan.',
 'http-curl-error' => 'Ralat mendapatkan URL: $1',
 'http-host-unreachable' => 'URL tidak dapat dicapai.',
 'http-bad-status' => 'Berlaku masalah ketika permintaan HTTP: $1 $2',
-'http-truncated-body' => 'Jasad permohonan diterima separa-separa sahaja.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'URL tidak dapat dicapai',
index 90e43ba..96d222e 100644 (file)
@@ -1556,7 +1556,7 @@ Hawnhekk hawn valur iġġenerat b'mod każwali li inti tista' tuża: $1",
 'nchanges' => '{{PLURAL:$1|modifika $1 |$1 modifiki}}',
 'recentchanges' => 'Tibdil riċenti',
 'recentchanges-legend' => 'Opzjonijiet tat-tibdil riċenti',
-'recentchangestext' => 'Din il-paġna turi l-modifiki l-aktar riċenti għal kontenut tas-sit.',
+'recentchanges-summary' => 'Din il-paġna turi l-modifiki l-aktar riċenti għal kontenut tas-sit.',
 'recentchanges-feed-description' => "Dan il-feed jirraporta l-modifiki l-aktar riċenti fil-kontenut ta' dan is-sit.",
 'recentchanges-label-newpage' => 'Din il-modifika ħolqot paġna ġdida',
 'recentchanges-label-minor' => 'Din hi modifika minuri',
index b257836..1459d46 100644 (file)
@@ -938,7 +938,7 @@ Your e-mail address is not revealed when other users contact you.
 'nchanges' => 'ပြောင်းလဲချက် $1 {{PLURAL:$1|ခု|ခု}}',
 'recentchanges' => 'လတ်​တ​လောအ​ပြောင်း​အ​လဲ​',
 'recentchanges-legend' => 'လတ်တလောအပြောင်းအလဲများအတွက် ရွေးချယ်စရာများ',
-'recentchangestext' => 'ဤစာမျက်နှာတွင် ဝီကီ၏ လတ်တလောပြောင်းလဲမှုများကို နောက်ကြောင်းခံလိုက်ရန်',
+'recentchanges-summary' => 'ဤစာမျက်နှာတွင် ဝီကီ၏ လတ်တလောပြောင်းလဲမှုများကို နောက်ကြောင်းခံလိုက်ရန်',
 'recentchanges-feed-description' => 'ဤ feed ထဲတွင် ဝီကီ၏ လတ်တလောပြောင်းလဲမှုများကို နောက်ကြောင်းခံလိုက်ရန်',
 'recentchanges-label-newpage' => 'ဤတည်းဖြတ်မှုသည် စာမျက်နှာအသစ်ကို ဖန်တီးခဲ့သည်။',
 'recentchanges-label-minor' => 'အရေးမကြီးသော ​ပြင်​ဆင်​မှု ​ဖြစ်​သည်​',
index 75c4ace..ff028d5 100644 (file)
@@ -1049,7 +1049,7 @@ IP-тешкстэть — $3, саймас совавтоманть ID-сь —
 'nchanges' => '$1 {{PLURAL:$1|полавтнема|полавтнемат}}',
 'recentchanges' => 'Чыяконь полавтнемат-лиякстомтомат',
 'recentchanges-legend' => 'Улконь полавтнематнень аравтнемаст',
-'recentchangestext' => '',
+'recentchanges-summary' => '',
 'recentchanges-feed-description' => 'Мельга ваннынк кода ульнесть витьнемат-петнемат wiki-сэ те максовксонть.',
 'recentchanges-label-newpage' => 'Те витнемась-петнемась од лопа тейсь',
 'recentchanges-label-minor' => 'Те а покшкэ витнемась-петнемась',
index bc64598..3e3b6ab 100644 (file)
@@ -452,7 +452,7 @@ $2، $1',
 'readonly' => 'پایگاه داده زلفن بزه‎بیّه',
 'enterlockreason' => 'دلیلی زلفین بزوئن وسّه بارین، که حاوی تقریبی از زمونی بائه که زلفین بَیته وانه',
 'missingarticle-rev' => '(نسخهٔ شماره: $1)',
-'missingarticle-diff' => '(فرق و فـَسِل: $1، $2)',
+'missingarticle-diff' => '(فرق: $1، $2)',
 'readonly_lag' => 'پایگاه داده به طور خودکار زلفین بزه‌بیّه تا پشتیبون ِنسخه‌ئون با اصلی نسخه هماهنگ بواشِن',
 'internalerror' => 'خطای دله‌یی',
 'internalerror_info' => 'خطای دله‌یی: $1',
@@ -497,7 +497,7 @@ $2، $1',
 'userloginnocreate' => 'دله بموئن',
 'logout' => 'دربوردن',
 'userlogout' => 'دربوردن',
-'notloggedin' => 'سیستم ره دله نی یه موئین',
+'notloggedin' => 'سیستم ره دله نیه مونی',
 'nologin' => 'عضو نی؟ $1.',
 'nologinlink' => 'عضو بواشین',
 'createaccount' => 'ترنه حساب وا هکاردن',
@@ -541,7 +541,7 @@ $2، $1',
 # Edit pages
 'summary' => 'گوزارش کار:',
 'subject' => 'موضوع یا عنوان:',
-'minoredit' => 'اینتا اتّا پـچیک دچی‌یه هسته',
+'minoredit' => 'اینتا ویرایش خله جزئی بیه',
 'watchthis' => 'این صفحه ره دمبال هـاکاردن',
 'savearticle' => 'جادکتن ِصفحه',
 'preview' => 'پیش نمایش',
@@ -567,8 +567,9 @@ $2، $1',
 آخرین مورد سیاهه قطع دسترسی زیر بموئه:',
 'previewnote' => 'شِمه یاد بوئه که اینتا اتا پیش‌نمایِش هسه. 
  شِمه دگاردسته‌ئون جانـَکِته که و‌نه، ونه اِسا ذخیره‌بیّـِن دوکمه ره بَزنین!',
-'editing' => 'دچی‌ین => $1',
+'editing' => 'درحال  $1 ره دچی‌ین',
 'editingsection' => 'دچی‌ین $1 (تیکه)',
+'editingcomment' => '$1 دچی‌ین(نو تیکه)',
 'yourtext' => 'شمه بنویشته',
 'copyrightwarning' => 'خـاهش بونه شمه یاد دواشه که همه چیزایی که {{SITENAME}} دله وانه، تحت $2 حیساب وونه. (ویشتر بخوندستن وسه $1 ره هارشین)<br />
 اگه نخانّی شمه بنویشته‌ئون اینجه دس بزه یا ات نفر دیگه شمه بنویشته ره کوپی نکانه، اصلأ شه بنویشته ره اینجه نی‌یلین.',
@@ -599,8 +600,13 @@ $2، $1',
 
 # Revision deletion
 'rev-delundel' => 'نشون هدائن/فرو بوردن',
+'revdelete-text' => "'''نسخه‌ئون و حذف بئی موارد ره بشنه سیاهه جا و صفحه تاریخچه دله بدین، ولی اتی قسمت از وشونه محتواره بقیه کارورون نتوننه بوینن.'''
+{{SITENAME}} بقیه مدیرون بتوننه اینتا پنهون بئیه محتوا ره هارشن و وشونه حذف بئیون ره احیاء هاکنن، مگر اینکه اتی سری محدودیت ونه رو اعمال بئی باشه.",
 'revdel-restore' => 'دیاری تغییر هدائن',
 
+# History merging
+'mergehistory' => 'صفحه‌ئون تاریخچه ره اتا هاکردن',
+
 # Merge log
 'revertmerge' => 'سِوا هاکردن',
 
@@ -646,7 +652,7 @@ $2، $1',
 'prefs-help-email-required' => 'ایمیل نشونی لازم هسه.',
 
 # User rights
-'userrights-user-editname' => 'کارور نوم ره بنویش هاکنین',
+'userrights-user-editname' => 'اتا کاروری نوم وارد هاکنین:',
 
 # Groups
 'group-sysop' => 'مدیرون',
@@ -670,6 +676,11 @@ $2، $1',
 
 # Recent changes
 'recentchanges' => 'تازه دگاردسته‌ئون',
+'recentchanges-legend' => 'تازه دگاردسته‌ئون گوزینه‌ها',
+'recentchanges-summary' => 'ویکی تازه دگاردسته‌ئون ره اینتا صفحه دله دمبال هاکنین.',
+'recentchanges-label-newpage' => 'اینتا ویرایش اته نو صفحه ایجاد هاکرده',
+'recentchanges-label-minor' => 'اینتا ویرایش خله جزئی بیه',
+'recentchanges-label-bot' => 'اینتا ویرایش‌ره اته ربات انجام هدائه',
 'rcnote' => "اینجه {{PLURAL:$1|دگاردسته‌یی|'''$1''' دگاردسته‌ئونی}} که $4، $5 جه، '''$2''' روز پیش‌تر دچی‎یه بینه ره اشنّی",
 'rclistfrom' => 'نِمایش تازه‌دگاردسته‌ئون با شروع از $1',
 'rcshowhideminor' => 'پچیک دچی‌یه‌ئون $1',
@@ -677,15 +688,16 @@ $2، $1',
 'rcshowhideliu' => 'ثبت‌نوم هاکرده کارورون $1',
 'rcshowhideanons' => 'ناشناس ِکارورون $1',
 'rcshowhidepatr' => 'گشت‌بخارد ِدچی‌یه‌ئون $1',
-'rcshowhidemine' => 'Ù\85Ù\86Ù\87 Ø¯Ú\86Û\8câ\80\8cÛ\8cÙ\87â\80\8cئÙ\88Ù\86 $1',
+'rcshowhidemine' => 'مه دچی‌یه‌ئون $1',
 'rclinks' => 'نـِشون هـِدائن  $1 پایانی دَچی‌‌یه‌ئون، $2 اِسـا روز ره دلـه؛ $3',
-'diff' => 'فرق و فـَسِل',
+'diff' => 'فرق',
 'hist' => 'تاریخچه',
-'hide' => 'Ù\81Ù\80Ù\90رÙ\88 Ø¨Ù\88ردن',
+'hide' => 'Ù¾Ù\86Ù\87Ù\88Ù\86 Ù\87اکن',
 'show' => 'نـِشـون هـاده',
-'minoreditletter' => 'Ø®Ù\88رد',
+'minoreditletter' => 'جز',
 'newpageletter' => 'نو',
 'boteditletter' => 'ربات',
+'newsectionsummary' => '/* $1 */ نو تیکه',
 
 # Recent changes linked
 'recentchangeslinked' => 'واری دأچیـه‌ن‌ئون',
@@ -784,6 +796,8 @@ $2، $1',
 'watchlist' => 'مه دمبال‌هاکرده‌‌ئون ِلیست',
 'mywatchlist' => 'مه دمبال‌هاکرده‌‌ئون ِلیست',
 'watchnologin' => 'سیستم ره دله نی ئه موئین',
+'addedwatchtext' => "«[[:$1]]» شمه [[Special:Watchlist|دمبال هاکردئون لیست]] دله اضافه بیه.
+اینتا صفحه دگاردسته‌ئون و ونه گپ آینده دله اینتا لیست دله شمه وسه فهرست بوننه؛ یان شه بماند، اینتا صفحه، [[Special:RecentChanges|تازه دگاردسته‌ئون]] فهرست دله شمه وسه '''پررنگ‌تر''' نمایش هدا بونه تا وره راحت تر بوینین.",
 'watch' => 'دمبال هاکردن',
 'watchthispage' => 'این صفحه ره دِمبال هاکارد‌ن',
 'unwatch' => 'ده‌مـبـال نـه‌کـارده‌ن',
@@ -793,6 +807,7 @@ $2، $1',
 'wlheader-enotif' => '*تونی ایمیل جه مطلع بواشین.',
 'wlheader-showupdated' => "*صفحه‌ئونی که بعد از آخرین سربزوئنتون عوض بینه '''پر رنگ''' نشون هدائه بیّه.",
 'wlnote' => "ایجه {{PLURAL:$1|پایانی دأچیه‌ن|پایانی '''$1''' دأچیه‌ن‌ئونی}} هأسه که ای $2 ساعت ده‌له دأکه‌ته.",
+'watchlist-options' => 'دمبال هاکردن گوزینه‌ها',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'ده‌مـبـال هـه‌کـارده‌ن...',
@@ -807,6 +822,9 @@ $2، $1',
 
 # Delete
 'deletepage' => 'صفحه پاک هاکردن',
+'excontent' => 'صفحه محتوا وِ بیه: «$1»',
+'excontentauthor' => 'صفحه محتوا وِ بیه: «$1» (فقط «[[Special:Contributions/$2|$2]]» وِنه کایر بیه)',
+'exbeforeblank' => 'قبل اینکه صفحه محتوا خالی بوه ونه محتوا وِ بیه: «$1»',
 'dellogpage' => 'وه ره بییته‌ئون گوزارش',
 
 # Rollback
@@ -817,6 +835,13 @@ $2، $1',
 'revertpage-nouser' => '"چیزونی که (ونـه کـاروری نـوم پـاک بَیّه) دچی‌یه دگـاردسته بیّه همونتایی که [[User:$1|$1]] آخرسری دچی‌ین دلـه هاکرده"',
 'rollback-success' => 'چیزونی که $1 دچی‌ین دگاردسته بیّه همونتایی که $2 آخرسری دچی‌ین دلـه هاکرده',
 
+# Protect
+'protectedarticle' => '«[[$1]]» ره محافظت هاکرده',
+'modifiedarticleprotection' => '«[[$1]]» محافظت تنظیمات ره تغییر هدائه',
+'movedarticleprotection' => '«[[$2]]» محافظت تنظیمات ره «[[$1]]» رو منتقل هاکرده',
+'protect-expiry-indefinite' => 'بی‌پایون',
+'protect-cantedit' => 'شما نتوننی اینتا صفحه محافظت وضعیت ره تغییر هادین، شما اجازه این کار ره ندایننی.',
+
 # Restrictions (nouns)
 'restriction-edit' => 'دچی‌ین',
 'restriction-upload' => 'باربی‌یشتن',
@@ -826,6 +851,7 @@ $2، $1',
 
 # Namespace form on various pages
 'namespace' => 'نوم‌جا:',
+'invert' => 'برعکس انتخاب هاکن',
 'blanknamespace' => '(مـار)',
 
 # Contributions
@@ -855,6 +881,7 @@ $2، $1',
 'blockip-legend' => 'کارور ره دَوستن',
 'ipbsubmit' => 'ای کارور دأبه‌س بأوه',
 'ipblocklist' => 'IP نـه‌شـونـی‌ئون ئو کـارورنـوم‌ئونی کـه دأبـه‌سـتـوونـه',
+'infiniteblock' => 'بی‌پایون',
 'blocklink' => 'دَوستن',
 'unblocklink' => 'وا هـه‌کـارده‌ن',
 'change-blocklink' => 'قطع دسترسی تغییر هدائن',
@@ -999,6 +1026,7 @@ $5
 # Auto-summaries
 'autosumm-blank' => 'صفحه ره اسپه هاکرده',
 'autosumm-replace' => "صفحه ره اینتا جه عوض هاکرد: '$1'",
+'autoredircomment' => 'به [[$1]] مسیر ره تغییر هدائه',
 
 # Special:Version
 'version-specialpages' => 'شا صفحه‌ئون',
@@ -1008,6 +1036,7 @@ $5
 'specialpages-group-maintenance' => 'چله‌بندی صفحه‌ئون',
 
 # New logging system
+'logentry-move-move_redir-noredirect' => '$1 ، $3 ره بدون اینکه مسیر تغییری درس بوه به $4 که مسیر تغییر بیه منتقل هاکرده',
 'logentry-newusers-newusers' => '$1  بساتن اتا حساب کاروری',
 'logentry-newusers-create' => '$1  بساتن اتا حساب کاروری',
 
index 27db5eb..51a8e22 100644 (file)
@@ -763,7 +763,7 @@ Intlā ticnequi, tlācah quimatīzqueh motequi.',
 'nchanges' => '$1 {{PLURAL:$1|tlapatlaliztli|tlapatlaliztli}}',
 'recentchanges' => 'Yancuīc tlapatlaliztli',
 'recentchanges-legend' => 'Yancuīc tlapatlaliztechcopa tlanequiliztli',
-'recentchangestext' => 'Ìpan inìn tlaìxtlapalli xikỉta in okảchi yankuik ìtlatlaìxpảtilis in wiki.',
+'recentchanges-summary' => 'Xiquinttāz in achi yancuīc ahmo occequīntīn tlapatlaliztli huiquipan inīn zāzanilpan.',
 'rcnote' => "Nicān {{PLURAL:$1|cah '''1''' tlapatlaliaztli|cateh in xōcoyōc '''$1''' tlapatlaliztli}} īpan xōcoyōc {{PLURAL:$2|tōnalli|'''$2''' tōnaltin}} īhuīcpa $5, $4.",
 'rclistfrom' => 'Xiquinttāz yancuīc tlapatlaliztli īhuīcpa $1',
 'rcshowhideminor' => '$1 tlapatlalitzintli',
index a510c60..2f002b9 100644 (file)
@@ -26,15 +26,15 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Liân-kiat oē té-sûn:',
 'tog-hideminor' => 'Am chòe-kīn ê sió kái-piàn',
-'tog-extendwatchlist' => 'Tián-khui kàm-sī-toaⁿ khoàⁿ só͘-ū ê kái-piàn, m̄-chí sī choè-kīn--ê',
-'tog-usenewrc' => 'Ēng ka-kiông pán khoàⁿ chòe-kīn ê kái-piàn (su-iàu JavaScript)',
+'tog-extendwatchlist' => 'Khok-chhiong kàm-sī-toaⁿ kàu hián-sī só͘-ū ê kái-piàn',
+'tog-usenewrc' => 'Ka-kiông pán ê chòe-kīn-ê-kái-piàn (su-iàu JavaScript)',
 'tog-numberheadings' => 'Phiau-tê chū-tōng pian-hō',
 'tog-showtoolbar' => 'Hián-sī pian-chi̍p ke-si-tiâu (su-iàu JavaScript)',
 'tog-editondblclick' => 'Siang-ji̍h ia̍h-bīn to̍h ē-tàng pian-chi̍p (su-iàu JavaScript)',
 'tog-editsection' => 'Ji̍h [siu-kái] chit-ê liân-kiat to̍h ē-tàng pian-chi̍p toāⁿ-lo̍h',
 'tog-editsectiononrightclick' => 'Chiàⁿ-ji̍h (right click) toāⁿ-lo̍h (section) phiau-tê to̍h ē-tàng pian-chi̍p toāⁿ-lo̍h (su-iàu JavaScript)',
 'tog-showtoc' => 'Hián-sī bo̍k-chhù (3-ê phiau-tê í-siōng ê ia̍h)',
-'tog-rememberpassword' => 'Kì tiâu bi̍t-bé, āu-chōa iōng ( $1 {{PLURAL:$1|day|kang}} lāi)',
+'tog-rememberpassword' => 'Kì tiâu bi̍t-bé, āu-chōa iōng (for a maximum of $1 {{PLURAL:$1|day|days}})',
 'tog-watchcreations' => 'Kā goá khui ê ia̍h ka-ji̍p kàm-sī-toaⁿ lāi-té',
 'tog-watchdefault' => 'Kā goá pian-chi̍p kòe ê ia̍h ka-ji̍p kàm-sī-toaⁿ lāi-té',
 'tog-watchmoves' => 'Kā goá soá ê ia̍h ka-ji̍p kàm-sī-toaⁿ',
@@ -44,8 +44,8 @@ $messages = array(
 'tog-previewonfirst' => 'Thâu-pái pian-chi̍p seng khoàⁿ-māi',
 'tog-nocache' => 'Koaiⁿ-tiāu ia̍h ê cache',
 'tog-fancysig' => 'Chhiam-miâ mài chò liân-kiat',
-'tog-externaleditor' => 'Iōng gōa-pō· pian-chi̍p-khì (kan-na hō͘ ko-chhiú, he ài tī lí ê tiān-náu koh siat-tēng. [//www.mediawiki.org/wiki/Manual:External_editors Siông-chêng.])',
-'tog-externaldiff' => 'Iōng gōa-pō· diff (kan-na hō͘ ko-chhiú, he ài tī lí ê tiān-noá koh siat-tēng. [//www.mediawiki.org/wiki/Manual:External_editors Siông-chêng.])',
+'tog-externaleditor' => 'Iōng gōa-pō· pian-chi̍p-khì',
+'tog-externaldiff' => 'Iōng gōa-pō· diff',
 'tog-forceeditsummary' => 'Pian-chi̍p khài-iàu bô thiⁿ ê sî-chūn, kā goá thê-chhéⁿ',
 'tog-watchlisthideown' => 'Kàm-sī-toaⁿ bián hián-sī goá ê pian-chi̍p',
 'tog-watchlisthidebots' => 'Kàm-sī-toaⁿ bián hián-sī ki-khì pian-chi̍p',
@@ -115,7 +115,7 @@ $messages = array(
 'dec' => '12g',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Lūi-pia̍t|ê lūi-pia̍t}}',
+'pagecategories' => '{{PLURAL:$1|Lūi-pia̍t|Lūi-pia̍t}}',
 'category_header' => 'Tī "$1" chit ê lūi-pia̍t ê bûn-chiuⁿ',
 'subcategories' => 'Ē-lūi-pia̍t',
 'category-media-header' => 'Tī lūi-pia̍t "$1" ê mûi-thé',
@@ -192,7 +192,7 @@ $messages = array(
 'create-this-page' => 'Khai-sí siá chit ia̍h',
 'delete' => 'Thâi',
 'deletethispage' => 'Thâi chit ia̍h',
-'undelete_short' => 'Kiù {{PLURAL:$1| ê siu-káit|$1  ê siu-kái}}',
+'undelete_short' => 'Kiù $1 ê siu-kái',
 'viewdeleted_short' => 'Khoàⁿ {{PLURAL:$1|chi̍t-ê thâi tiàu--ê pian-chi̍p|$1 ê thâi tiàu--ê pian-chi̍p}}',
 'protect' => 'Pó-hō·',
 'protect_change' => 'kái-piàn',
@@ -221,7 +221,7 @@ $messages = array(
 'redirectedfrom' => '(Tùi $1 choán--lâi)',
 'redirectpagesub' => 'Choán-ia̍h',
 'lastmodifiedat' => 'Chit ia̍h tī $1,  $2 ū kái--koè',
-'viewcount' => 'Pún-ia̍h kàu taⁿ ū {{PLURAL:$1| pái|$1 pái}}  ê sú-iōng.',
+'viewcount' => 'Pún-ia̍h kàu taⁿ ū $1 pái access.',
 'protectedpage' => 'Siū pó-hō͘ ê ia̍h',
 'jumpto' => 'Thiàu khì:',
 'jumptonavigation' => 'Se̍h chām',
@@ -283,7 +283,7 @@ Chhiáⁿ khoàⁿ [[Special:Version|pán-pún ia̍h]].',
 'thisisdeleted' => 'Khoàⁿ a̍h-sī kiù $1?',
 'viewdeleted' => 'Beh khoàⁿ $1?',
 'restorelink' => '{{PLURAL:$1|chi̍t ê thâi-tiàu ê pian-chi̍p|$1 thâi-tiàu ê pian-chi̍p}}',
-'feedlinks' => 'Tēng khoàⁿ:',
+'feedlinks' => 'Chhī-liāu:',
 'feed-invalid' => 'Bô-hāu ê tēng khoàⁿ lūi-hêng.',
 'feed-unavailable' => 'Bô thê-kiong liân-ha̍p tēng khoàⁿ.',
 'site-rss-feed' => '$1 ê RSS tēng khoàⁿ',
@@ -346,11 +346,11 @@ Nā m̄-sī hit chióng chêng-hêng, lí khó-lêng tú tio̍h nńg-thé ê chh
 'unexpected' => 'Koài-koài ê pió-tat: "$1"="$2"。',
 'formerror' => 'Chhò-gō·: bô-hoat-tō· kā pió sàng chhut khì.',
 'badarticleerror' => 'Bē-tàng tiàm chit ia̍h chip-hêng chit ê tōng-chok.',
-'cannotdelete' => 'Bô-hoat-tō· kā  "$1" hit ê ia̍h a̍h-sī iáⁿ-siōng thâi tiāu. (Khó-lêng pa̍t-lâng í-keng kā thâi tiāu ah.)',
+'cannotdelete' => 'Bô-hoat-tō· kā hit ê ia̍h a̍h-sī iáⁿ-siōng thâi tiāu. (Khó-lêng pa̍t-lâng í-keng kā thâi tiāu ah.)',
 'badtitle' => 'M̄-chiâⁿ piau-tê',
 'badtitletext' => 'Iau-kiû ê piau-tê sī bô-hāu ê, khang ê, a̍h-sī liân-kiat chhò-gō· ê inter-language/inter-wiki piau-tê.',
-'perfcached' => 'Ē-kha ê chu-liāu ùi khoài-chhú(cache) lâi--ê, só·-í khó-lêng m̄-sī siōng sin ê. Khoài-chhú lāi-té siōng chē khǹg {{PLURAL:$1| chi̍t tiâu|$1 tiâu}}.',
-'perfcachedts' => 'Ē-kha ê chu-liāu ùi khoài-chhú(cache) lâi--ê, tī $1 keng-sin--koè. Khoài-chhú lāi-té siōng chē khǹg {{PLURAL:$4| chi̍t tiâu |$4 tiâu}}.',
+'perfcached' => 'Ē-kha ê chu-liāu tùi lâi--ê, só·-í bī-pit oân-choân hoán-èng siōng sin ê chōng-hóng. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
+'perfcachedts' => 'Ē-kha ê chu-liāu tùi lâi--ê, tī $1 keng-sin--koè. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
 'querypage-no-updates' => 'Chit-má bē-sái kái chit ia̍h.
 Chia ê chu-liāu bē-tàng sui tiông-sin chéng-lí.',
 'wrong_wfQuery_params' => 'Chhò-ngō͘ ê chham-sò͘ chhoân hō͘ wfQuery()<br />
@@ -363,9 +363,7 @@ Chhiáⁿ tī kúi hun-cheng hāu chiah koh chhì.',
 'protectedpagetext' => 'Chit ia̍h hông só tiâu leh, bē pian-chi̍p tit.',
 'viewsourcetext' => 'Lí ē-sái khoàⁿ ia̍h khó͘-pih chit ia̍h ê goân-sú loē-iông:',
 'protectedinterface' => 'Chit ia̍h thê-kiong nńg-thé kài-bīn ēng ê bûn-jī. Ūi beh ī-hông lâng chau-that, só͘-í ū siū tio̍h pó-hō͘.',
-'editinginterface' => "'''Sè-jī:''' Lí tng teh siu-kái 1 bīn thê-kiong nńg-thé kài-bīn bûn-jī ê ia̍h.
-Jīn-hô kái-piàn to ē éng-hióng tio̍h kî-thaⁿ iōng-chiá ê sú-iōng kài-bīn.
-Nā ūi-tio̍h hoan-e̍k, chhiáⁿ khó-lū sú-iōng [//translatewiki.net/wiki/Main_Page?setlang=nan translatewiki.net], MediaWiki ê chāi-tē hoà sū-kang.",
+'editinginterface' => "'''Sè-jī:''' Lí tng teh siu-kái 1 bīn thê-kiong nńg-thé kài-bīn bûn-jī ê ia̍h. Jīn-hô kái-piàn to ē éng-hióng tio̍h kî-thaⁿ iōng-chiá ê sú-iōng kài-bīn.",
 'sqlhidden' => '(Tshàng SQL tsa-sûn)',
 'cascadeprotected' => 'Chit-ê ia̍h í-keng hông pó-hō͘ bē kái tit. In-ūi i tī ē-bīn {{PLURAL:$1|ê|ê}} liân-só pó-hō͘ lāi-té:
 $2',
@@ -377,14 +375,14 @@ $2',
 # Login and logout pages
 'logouttext' => "'''Lí í-keng teng-chhut.'''
 
-Lí ē-sái mài kì-miâ kè-siok sú-iōng {{SITENAME}}, mā ē-sái iōng kāng-ê a̍h-sī  pa̍t-ê sin-hūn [[Special:UserLogin|têng teng-ji̍p]].
+Lí ē-sái mài kì-miâ kè-siok sú-iōng {{SITENAME}}, mā ē-sái iōng kāng-ê a̍h-sī pa̍t-ê sin-hūn têng teng-ji̍p.
 Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-goân teng-ji̍p tiong; che chi-iàu piàⁿ tiāu lí ê browser ê cache chiū ē chèng-siông.",
 'welcomecreation' => '==Hoan-gêng $1!==
-Í-keng khui hó lí ê kháu-chō.  M̄-hó bē-kì-tit chhiâu lí tī [[Special:Preferences|{{SITENAME}} ê iōng-chiá siat-tēng]].',
+Í-keng khui hó lí ê kháu-chō.  M̄-hó bē-kì-tit chhiâu lí ê iōng-chiá siat-tēng.',
 'yourname' => 'Lí ê iōng-chiá miâ-chheng:',
 'yourpassword' => 'Lí ê bi̍t-bé:',
 'yourpasswordagain' => 'Têng phah bi̍t-bé:',
-'remembermypassword' => 'Kì tiâu góa ê bi̍t-bé (āu-chhiú teng-ji̍p iōng) (tī $1 {{PLURAL:$1|day|days}} kang lāi)',
+'remembermypassword' => 'Kì tiâu góa ê bi̍t-bé (āu-chhiú teng-ji̍p iōng) (for a maximum of $1 {{PLURAL:$1|day|days}})',
 'login' => 'Teng-ji̍p',
 'nav-login-createaccount' => 'Teng-ji̍p / khui sin kháu-chō',
 'loginprompt' => 'Thiⁿ ē-kha ê chu-liāu thang khui sin hō·-thâu a̍h-sī teng-ji̍p {{SITENAME}}.',
@@ -392,7 +390,7 @@ Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-go
 'logout' => 'Teng-chhut',
 'userlogout' => 'Teng-chhut',
 'notloggedin' => 'Bô teng-ji̍p',
-'nologin' => "Bô poàⁿ ê kháu-chō? '''$1'''.",
+'nologin' => "Bô-thang teng-ji̍p? '''$1'''.",
 'nologinlink' => 'Khui 1 ê kháu-chō',
 'createaccount' => 'Khui sin kháu-chō',
 'gotaccount' => "Í-keng ū kháu-chō? '''$1'''.",
@@ -404,7 +402,7 @@ Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-go
 'createaccounterror' => 'Bô hoat-tō͘ khui kháu-chō: $1',
 'loginsuccesstitle' => 'Teng-ji̍p sêng-kong',
 'loginsuccess' => 'Lí hiān-chhú-sî í-keng teng-ji̍p {{SITENAME}} chò "$1".',
-'nosuchuser' => 'Chia bô iōng-chiá hō-chò "$1". Miâ-jī  ū hun toā-siá, sio-siá . Chhiáⁿ kiám-cha lí ê phèng-im, a̍h-sī [[Special:UserLogin/signup|khui sin káu-chō]].',
+'nosuchuser' => 'Chia bô iōng-chiá hō-chò "$1". Chhiáⁿ kiám-cha lí ê phèng-im, a̍h-sī iōng ē-kha ê pió lâi khui sin iōng-chiá ê kháu-chō.',
 'nosuchusershort' => 'Bô "$1" chit ê iōng-chiá miâ.
 Tùi khoàⁿ-māi,  lí phah--ê.',
 'nouserspecified' => 'Lí ài chí-tēng chi̍t ê iōng-chiá miâ.',
@@ -415,9 +413,8 @@ Tùi khoàⁿ-māi,  lí phah--ê.',
 'noemail' => 'Kì-lo̍k bô iōng-chiá "$1" ê e-mail chū-chí.',
 'passwordsent' => 'Ū kià sin bi̍t-bé khì "$1" chù-chheh ê e-mail chū-chí. Siu--tio̍h liáu-āu chhiáⁿ têng teng-ji̍p.',
 'mailerror' => 'Kià phoe tú tio̍h chhò-gō·: $1',
-'acct_creation_throttle_hit' => 'Tī koè-khì 24 tiám-cheng lāi,  ū chit ê iōng lí IP bāng-chí ê lâng í-keng khui {{PLURAL:$1|1 account|$1 kháu-chō}}. He sī hit ê sî-kan lāi thang chò ê.
-Tiō-sī kóng, tī chit-má iōng chit ê IP bāng-chí ê lâng bē-sái koh khui jīm-hô kháu-chō.',
-'emailauthenticated' => 'Lí ê e-mail chū-chí tī $2 $3 khak-jīn sêng-kong.',
+'acct_creation_throttle_hit' => 'Pháiⁿ-sè, lí taⁿ í-keng khui $1 ê kháu-chō ā. Bē-sái koh-chài khui.',
+'emailauthenticated' => 'Lí ê e-mail chū-chí tī $1 khak-jīn sêng-kong.',
 'emailnotauthenticated' => 'Lí ê e-mail chū-chí iáu-bōe khak-jīn ū-hāu, só·-í ē--kha ê e-mail kong-lêng bē-ēng-tit.',
 'noemailprefs' => 'Tī lí ê siat-piān chí-tēng chi̍t ê tiān-chú-phoe tē-chí thang hō͘ chia ê kong-lêng ē-tàng ēng.',
 'emailconfirmlink' => 'Chhiáⁿ khak-jīn lí ê e-mail chū-chí ū-hāu',
@@ -485,26 +482,21 @@ Lîm-sî ê bi̍t-bé: $2',
 'loginreqlink' => 'Teng-ji̍p',
 'loginreqpagetext' => 'Lí ài $1 chiah thang khoàⁿ pat ia̍h.',
 'accmailtitle' => 'Bi̍t-bé kià chhut khì ah.',
-'accmailtext' => "Hō͘ [[User talk:$1|$1]] ê chi̍t ê iōng loān-sò͘ sán-seng ê bi̍t-bé í-keng kìa khì $2.
-
-Kháu-chō ê sin bi̍t-bé thang tī teng-ji̍p liáu tī ''[[Special:ChangePassword|siu-kái bi̍t-bé]]'' ia̍h kái tiāu.",
+'accmailtext' => '$1 ê bi̍t-bé í-keng kìa khì $2.',
 'newarticle' => '(Sin)',
 'newarticletext' => "Lí tòe 1 ê liân-kiat lâi kàu 1 bīn iáu-bōe chûn-chāi ê ia̍h. Beh khai-sí pian-chi̍p chit ia̍h, chhiáⁿ tī ē-kha ê bûn-jī keh-á lāi-té phah-jī. ([[{{MediaWiki:Helppage}}|Bo̍k-lio̍k]] kà lí án-choáⁿ chìn-hêng.) Ká-sú lí bô-tiuⁿ-tî lâi kàu chia, ē-sai chhi̍h liû-lám-khì ê '''téng-1-ia̍h''' tńg--khì.",
-'anontalkpagetext' => "''Pún thó-lūn-ia̍h bô kò·-tēng ê kháu-chō/hō·-thâu, kan-na ū 1 ê IP chū-chí (chhin-chhiūⁿ 123.456.789.123). In-ūi bô kāng lâng tī bô kāng sî-chūn ū khó-lêng tú-hó kong-ke kāng-ê IP, lâu tī chia ê oē ū khó-lêng hō· bô kāng lâng ê! Beh pī-bián chit khoán būn-tê, ē-sái khì [[Special:UserLogin/signup|khui 1 ê hō·-thâu a̍h-sī teng-ji̍p]].''",
-'clearyourcache' => "'''Chù-ì:''' Pó-chûn liáu-āu, tio̍h ē-kì leh kā liû-lám-khì ê cache piàⁿ tiāu chiah khoàⁿ-ē-tio̍h kái-piàn.
-*'''Firefox / Safari:''' chhi̍h tiâu \"Shift\" kâng-sî-chūn tiám-kik ''Reload/têng-sin chài-ji̍p'' a̍h-sī chhi̍h ''Ctrl-F5'' \"Ctrl-R\" kî-tiong chi̍t ê (''⌘-R'' tī Mac)
-* '''Google Chrome:''' chhi̍h ''Ctrl-Shift-R'' (''⌘-R-Shift-R'' tī Mac)
-'''Internet Explorer :'''chhi̍h tiâu \"Ctrl\" kâng-sî-chūn tiám-kek ''Refresh/têng-sin chài-ji̍p'' a̍h-sī chhi̍h \"Ctrl-F5\"
+'anontalkpagetext' => "----''Pún thó-lūn-ia̍h bô kò·-tēng ê kháu-chō/hō·-thâu, kan-na ū 1 ê IP chū-chí (chhin-chhiūⁿ 123.456.789.123). In-ūi bô kāng lâng tī bô kāng sî-chūn ū khó-lêng tú-hó kong-ke kāng-ê IP, lâu tī chia ê oē ū khó-lêng hō· bô kāng lâng ê! Beh pī-bián chit khoán būn-tê, ē-sái khì [[Special:UserLogin|khui 1 ê hō·-thâu a̍h-sī teng-ji̍p]].''",
+'clearyourcache' => "'''Chù-ì:''' Pó-chûn liáu-āu, tio̍h ē-kì leh kā liû-lám-khì ê cache piàⁿ tiāu chiah khoàⁿ-ē-tio̍h kái-piàn: *'''Firefox / Safari:''' chhi̍h tiâu \"Shift\" kâng-sî-chūn tiám-kik ''Reload/têng-sin chài-ji̍p'' a̍h-sī chhi̍h ''Ctrl-F5'' \"Ctrl-R\" kî-tiong chi̍t ê (''Command-R'' tī Mac) 
+* '''Google Chrome:''' chhi̍h ''Ctrl-Shift-R'' (''Command-Shift-R'' tī Mac)
+'''Internet Explorer :'''chhi̍h tiâu \"Ctrl\" kâng-sî-chūn tiám-kek ''Refresh/têng-sin chài-ji̍p'' a̍h-sī chhi̍h \"Ctrl-F5\" 
 * '''Konqueror:'''  tiám-kek ''Reload/têng-sin chài-ji̍p'' a̍h-sī chhi̍h ''F5''
 * '''Opera:''' piàⁿ-tiāu cache tī ''Tools(ke-si) → Preferences(siat-piān)''",
-'usercssyoucanpreview' => "'''Phiat-pō·''': Pó-chûn chìn-chêng ē-sái chhi̍h 'Seng khoàⁿ-māi' kiám-cha sin ê CSS.",
-'userjsyoucanpreview' => "'''Phiat-pō·''': Pó-chûn chìn-chêng ē-sái tiám-kek \"{{int:showpreview}}\" ; chhì lí ê sin JavaScript.",
-'usercsspreview' => "'''Thê-chhíⁿ lí,  che chí-sī sian khoàⁿ-māi  lí ê su-jîn CSS'''
-'''Che iáu-bōe pó-chûn--khí-lâi !'''",
+'usercssyoucanpreview' => "'''Phiat-pō·''': Pó-chûn chìn-chêng ē-sái chhi̍h 'Seng khoàⁿ-māi' kiám-cha sin ê CSS a̍h-sī JavaScript.",
+'userjsyoucanpreview' => "'''Phiat-pō·''': Pó-chûn chìn-chêng ē-sái chhi̍h 'Seng khoàⁿ-māi' kiám-cha sin ê CSS a̍h-sī JavaScript.",
+'usercsspreview' => "'''Sè-jī! Lí hiān-chú-sî khoàⁿ--ê sī lí ê su-jîn css ê preview; che iáu-bōe pó-chûn--khí-lâi!'''",
 'userjspreview' => "'''Sè-jī! Lí hiān-chú-sî chhì khoàⁿ--ê sī lí ka-kī ê javascript; che iáu-bōe pó-chûn--khí-lâi!'''",
 'note' => "'''Chù-ì:'''",
-'previewnote' => "'''Thê-chhéⁿ lí, che chí-sī  hō͘ lí sian khoàⁿ chi̍t-ē.'''
-Lí kái--ê iáu-bōe pó-chûn--khí-lâi !",
+'previewnote' => "'''Thê-chhéⁿ lí che sī 1 bīn kiám-cha chho͘-phe ēng--ê \"seng-khoàⁿ-ia̍h\", iáu-bōe pó-chûn--khí-lâi!'''",
 'session_fail_preview' => "'''Pháiⁿ-sè! Gún chiām-sî bô hoat-tō͘ chhú-lí lí ê pian-chi̍p (goân-in: \"phàng-kiàn sú-iōng kî-kan ê chu-liāu\"). Lô-hoân têng chhì khoàⁿ-māi. Ká-sú iû-goân bô-hāu, ē-sái teng-chhut koh-chài teng-ji̍p hoān-sè tō ē-tit kái-koat.'''",
 'editing' => 'Siu-kái $1',
 'editingsection' => 'Pian-chi̍p $1 (section)',
@@ -518,22 +510,16 @@ Lí ê kái-piàn tī ē-kha ê bûn-jī-keh. Lí su-iàu chiōng lí chò ê k
 'storedversion' => 'Chu-liāu-khò· ê pán-pún',
 'editingold' => "'''KÉNG-KÒ: Lí tng teh siu-kái chit ia̍h ê 1 ê kū siu-tēng-pún. Lí nā kā pó-chûn khí lâi, chit ê siu-tēng-pún sòa-āu ê jīm-hô kái-piàn ē bô khì.'''",
 'yourdiff' => 'Chha-pia̍t',
-'readonlywarning' => "'''CHÙ-Ì: Chu-liāu-khò· taⁿ só tiâu leh thang pān î-siu khang-khòe, só·-í lí hiān-chú-sî bô thang pó-chûn jīn-hô phian-chi̍p hāng-bo̍k. Lí ē-sái kā siong-koan pō·-hūn tah--ji̍p-khì 1-ê bûn-jī tóng-àn pó-chûn, āu-chhiú chiah koh kè-sio̍k.'''
-
-Kā só tiâu ê koán-lí-goân ū lâu oē: $1",
-'protectedpagewarning' => "'''KÉNG-KÒ: Pún ia̍h só tiâu leh. Kan-taⁿ ū hêng-chèng te̍k-koân ê iōng-chiá (sysop) ē-sái siu-kái.'''
-Ē-kha ū choè-kīn ê kì-lo̍k thang chham-khó:",
-'templatesused' => 'Chit ia̍h iōng {{PLURAL:$1|Template|Templates}} chia ê pang-bô· :',
-'templatesusedpreview' => 'Chit ê preview iōng chia ê {{PLURAL:$1|Template|pang-bô͘}}',
-'templatesusedsection' => 'Chit ê toāⁿ-lo̍k iōng chia ê {{PLURAL:$1|Template|pang-bô͘}}',
+'readonlywarning' => "'''CHÙ-Ì: Chu-liāu-khò· taⁿ só tiâu leh thang pān î-siu khang-khòe, só·-í lí hiān-chú-sî bô thang pó-chûn jīn-hô phian-chi̍p hāng-bo̍k. Lí ē-sái kā siong-koan pō·-hūn tah--ji̍p-khì 1-ê bûn-jī tóng-àn pó-chûn, āu-chhiú chiah koh kè-sio̍k.'''",
+'protectedpagewarning' => "'''KÉNG-KÒ: Pún ia̍h só tiâu leh. Kan-taⁿ ū hêng-chèng te̍k-koân ê iōng-chiá (sysop) ē-sái siu-kái.'''",
+'templatesused' => 'Chit ia̍h iōng chia ê pang-bô·:',
+'templatesusedpreview' => 'Chit ê preview iōng chia ê pang-bô͘:',
+'templatesusedsection' => 'Chit ê section iōng chia ê pang-bô͘:',
 'template-protected' => '(pó-hō͘)',
 'template-semiprotected' => '(poàⁿ pó-hō͘)',
 'permissionserrorstext-withaction' => 'Lí bô ún-chún chò $2, in-ūi ē-kha
 {{PLURAL:$1|iân-kò͘|iân-kò͘}}:',
-'recreate-moveddeleted-warn' => "'''Sè-jī: Lí taⁿ chún-pī beh khui ê ia̍h, chêng bat hō͘ lâng thâi tiāu koè.'''
-
-Lí tio̍h chim-chiok soà-chiap pian-chi̍p chit ia̍h ê pit-iàu-sèng.
-Chia ū chit ia̍h ê san-tû kì-lo̍k hō͘ lí chham-khó:",
+'recreate-moveddeleted-warn' => "'''Sè-jī: Lí taⁿ chún-pī beh khui ê ia̍h, chêng bat hō͘ lâng thâi tiāu koè.''' Lí tio̍h chim-chiok soà-chiap pian-chi̍p chit ia̍h ê pit-iàu-sèng. Chia ū chit ia̍h ê san-tû kì-lo̍k (deletion log) hō͘ lí chham-khó:",
 'edit-conflict' => 'Siu-kái sio-chhiong',
 'defaultmessagetext' => 'Siat piān ê bûn-jī',
 
@@ -589,8 +575,8 @@ Chia ū chit ia̍h ê san-tû kì-lo̍k hō͘ lí chham-khó:",
 'searchprofile-images-tooltip' => 'Chhoé tóng-àn',
 'search-section' => '(toān-lo̍h $1)',
 'searchall' => 'choân-pō·',
-'showingresults' => "Ē-kha tùi #'''$2''' khai-sí hián-sī {{PLURAL:$1| hāng| hāng}} kiat-kó.",
-'showingresultsnum' => "Ē-kha tùi #'''$2''' khai-sí hián-sī {{PLURAL:$3| hāng| hāng}} kiat-kó.",
+'showingresults' => 'Ē-kha tùi #<b>$2</b> khai-sí hián-sī <b>$1</b> hāng kiat-kó.',
+'showingresultsnum' => 'Ē-kha tùi #<b>$2</b> khai-sí hián-sī <b>$3</b> hāng kiat-kó.',
 'powersearch' => 'Kiám-sek',
 'powersearch-legend' => 'Kiám-sek',
 
@@ -601,7 +587,7 @@ Chia ū chit ia̍h ê san-tû kì-lo̍k hō͘ lí chham-khó:",
 'preferences' => 'Siat-tēng',
 'mypreferences' => 'Góa ê siat-tēng',
 'prefsnologin' => 'Bô teng-ji̍p',
-'prefsnologintext' => 'Lí it-tēng ài <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} teng-ji̍p]</span> chiah ē-tàng chhiâu iōng-chiá ê siat-tēng.',
+'prefsnologintext' => 'Lí it-tēng ài [[Special:UserLogin|teng-ji̍p]] chiah ē-tàng chhiâu iōng-chiá ê siat-tēng.',
 'changepassword' => 'Oāⁿ bi̍t-bé',
 'prefs-skin' => 'Phôe',
 'skin-preview' => 'Chhì khoàⁿ',
@@ -622,12 +608,12 @@ Chia ū chit ia̍h ê san-tû kì-lo̍k hō͘ lí chham-khó:",
 'resultsperpage' => '1 ia̍h hián-sī kúi kiāⁿ:',
 'recentchangesdays' => 'Hián-sī kúi ji̍t chòe-kīn ê kái-piàn:',
 'recentchangesdays-max' => 'siōng-choē $1 {{PLURAL:$1|kang|kang}}',
-'recentchangescount' => 'Beh hián-sī kúi tiâu chòe-kīn kái--ê:',
+'recentchangescount' => 'Hián-sī kúi tiâu chòe-kīn ê kái-piàn:',
 'savedprefs' => 'Lí ê iōng-chiá siat-tēng í-keng pó-chûn khí lâi ah.',
 'timezonelegend' => 'Sî-khu',
-'localtime' => 'Chāi-tē sî-kan sī:',
-'timezoneoffset' => 'Sî-chha¹:',
-'servertime' => 'Server sî-kan hiān-chāi sī:',
+'localtime' => 'Chāi-tē sî-kan sī',
+'timezoneoffset' => 'Sî-chha¹',
+'servertime' => 'Server sî-kan hiān-chāi sī',
 'guesstimezone' => 'Tùi liû-lám-khì chhau--lâi',
 'allowemail' => 'Ún-chún pa̍t-ê iōng-chiá kià email kòe-lâi',
 'defaultns' => 'Tī chiah ê miâ-khong-kan chhiau-chhōe:',
@@ -695,7 +681,7 @@ Tī pat-lâng liân-lo̍k lí ê sî-chūn bē kā e-mail tsū-tsí siá chhut--
 'uploaddisabled' => 'Pháiⁿ-sè, sàng chiūⁿ-bāng ê kong-lêng bô khui.',
 'sourcefilename' => 'Tóng-àn goân miâ:',
 'destfilename' => 'Tóng-àn sin miâ:',
-'watchthisupload' => 'Kàm-sī chit ê tóng-àn',
+'watchthisupload' => 'Kàm-sī chit ia̍h',
 'upload-success-subj' => 'Sàng-chiūⁿ-bāng sêng-kong',
 
 # File backend
@@ -718,8 +704,8 @@ Tī pat-lâng liân-lo̍k lí ê sî-chūn bē kā e-mail tsū-tsí siá chhut--
 'filehist' => 'Tóng-àn ê le̍k-sú',
 'filehist-current' => 'hiān-chāi',
 'filehist-datetime' => 'Ji̍t-kî/ Sî-kan',
-'imagelinks' => 'Ēng tio̍h ê  tóng-àn',
-'linkstoimage' => 'Ē-bīn ê {{PLURAL:$1|ia̍h liân kàu|$1 ia̍h liân kàu}}  chit ê tóng-àn:',
+'imagelinks' => 'Iáⁿ-siōng liân-kiat',
+'linkstoimage' => 'Í-hā ê ia̍h liân kàu chit ê iáⁿ-siōng:',
 'nolinkstoimage' => 'Bô poàⁿ ia̍h liân kàu chit tiuⁿ iáⁿ-siōng.',
 
 # MIME search
@@ -763,9 +749,9 @@ Template:Khu-pia̍t-ia̍h',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|jī-goân|jī-goân}}',
 'ncategories' => '$1 {{PLURAL:$1|ê lūi-pia̍t |ê lūi-pia̍t}}',
-'nlinks' => '$1 {{PLURAL:$1|ê|ê}} liân-kiat',
+'nlinks' => '$1 ê liân-kiat',
 'nmembers' => '$1 ê sêng-oân',
-'nrevisions' => '$1 {{PLURAL:$1|ê|ê}} siu-tēng-pún',
+'nrevisions' => '$1 ê siu-tēng-pún',
 'lonelypages' => 'Ko·-ia̍h',
 'uncategorizedpages' => 'Bô lūi-pia̍t ê ia̍h',
 'uncategorizedcategories' => 'Bô lūi-pia̍t ê lūi-pia̍t',
@@ -782,7 +768,7 @@ Template:Khu-pia̍t-ia̍h',
 'mostcategories' => 'Siōng chē lūi-pia̍t ê ia̍h',
 'mostimages' => 'Siōng chia̍p liân-kiat ê iáⁿ-siōng',
 'mostrevisions' => 'Siōng chia̍p siu-kái ê ia̍h',
-'prefixindex' => 'SóÍ\98-Å« chiàu sû-thâu sek-ín liáu Ãª  iaÌ\8dh',
+'prefixindex' => 'Sû-thâu sek-ín',
 'shortpages' => 'Té-ia̍h',
 'deadendpages' => 'Khu̍t-thâu-ia̍h',
 'deadendpagestext' => 'Ē-kha ê ia̍h bô liân kàu wiki lāi-té ê kî-thaⁿ ia̍h.',
@@ -794,8 +780,7 @@ Template:Khu-pia̍t-ia̍h',
 'ancientpages' => 'Kó·-ia̍h',
 'move' => 'Sóa khì',
 'movethispage' => 'Sóa chit ia̍h',
-'unusedimagestext' => 'Ē-kha ê tóng-àn bô poàⁿ ia̍h ū teh iōng. M̄-koh ia̍h lâu leh.
-Chhiáⁿ chù-ì: kî-thaⁿ ê bāng-chām ū khó-lêng iōng URL ti̍t-chiap liân kàu iáⁿ-siōng, só·-í sui-jiân bô teh iōng, mā sī ē lia̍t tī chia.',
+'unusedimagestext' => '<p>Chhiáⁿ chù-ì: kî-thaⁿ ê bāng-chām ū khó-lêng iōng URL ti̍t-chiap liân kàu iáⁿ-siōng, só·-í sui-jiân chhiâng-chāi teh iōng, mā sī ē lia̍t tī chia.</p>',
 'unusedcategoriestext' => 'Ū ē-kha chiah-ê lūi-pia̍t-ia̍h, m̄-koh bô kî-thaⁿ ê bûn-chiuⁿ a̍h-sī lūi-pia̍t lī-iōng.',
 
 # Book sources
@@ -803,7 +788,7 @@ Chhiáⁿ chù-ì: kî-thaⁿ ê bāng-chām ū khó-lêng iōng URL ti̍t-chiap
 
 # Special:Log
 'specialloguserlabel' => 'Iōng-chiá:',
-'speciallogtitlelabel' => 'Bo̍k-piau (sû-tiâu ia̍h iōng-chiá) :',
+'speciallogtitlelabel' => 'Sû-tiâu:',
 'logempty' => 'Log lāi-bīn bô sio-tùi ê hāng-bo̍k.',
 
 # Special:AllPages
@@ -820,9 +805,9 @@ Chhiáⁿ chù-ì: kî-thaⁿ ê bāng-chām ū khó-lêng iōng URL ti̍t-chiap
 
 # Special:Categories
 'categories' => 'Lūi-pia̍t',
-'categoriespagetext' => 'Ē-kha {{PLURAL:$1| ê ūi-pia̍t|ê ūi-pia̍t}} ū ia̍h ia̍h-sī mûi-thé.
-[[Special:UnusedCategories|Bô iōng tio̍h ê ūi-pia̍t]] tō bô tī chiah hián-sī.
-Lēng-goā thang chham-khó [[Special:WantedCategories|beh ti̍h ê lūi-pia̍t]].',
+'categoriespagetext' => 'Chit ê wiki ū ē-kha chia ê lūi-pia̍t.
+[[Special:UnusedCategories|Unused categories]] are not shown here.
+Also see [[Special:WantedCategories|wanted categories]].',
 'categoriesfrom' => 'Tùi chit ê lūi-pia̍t khai-sí hián-sī:',
 
 # Special:DeletedContributions
@@ -830,20 +815,19 @@ Lēng-goā thang chham-khó [[Special:WantedCategories|beh ti̍h ê lūi-pia̍t]
 'deletedcontributions-title' => 'Hō͘ lâng thâi tiāu ê kòng-hiàn',
 
 # Special:LinkSearch
-'linksearch' => 'Chhoē chām-goā ê liân-kiat',
+'linksearch' => 'Chhiau-chhoē chām-goā liân-kiat',
 
 # E-mail user
 'mailnologin' => 'Bô siu-phoe ê chū-chí',
 'mailnologintext' => 'Lí it-tēng ài [[Special:UserLogin|teng-ji̍p]] jī-chhiáⁿ ū 1 ê ū-hāu ê e-mail chū-chí tī lí ê [[Special:Preferences|iōng-chiá siat-tēng]] chiah ē-tàng kià e-mail hō· pa̍t-ūi iōng-chiá.',
 'emailuser' => 'Kià e-mail hō· iōng-chiá',
 'emailpage' => 'E-mail iōng-chiá',
-'emailpagetext' => 'Lí ē-tàng iōng ē-kha ê pió kià chi̍t tiuⁿ phe hō͘ chit ê iōng-chiá.
-Lí ê [[Special:Preferences|siat-tēng]] ê tiān-chú-phe tē-chí ē chhut-hiān tī tiān-chú-phe ê "Kià-phe-chiá" (From) hit ūi. Án-ne siu-phe-chiá chiah ū hoat-tō· kā lí hôe-phe.',
+'emailpagetext' => 'Ká-sú chit ê iōng-chiá ū siat-tēng 1 ê ū-hāu ê e-mail chū-chí, lí tō ē-tàng ēng ē-kha chit tiuⁿ FORM hoat sìn-sek hō· i. Lí siat-tēng ê e-mail chū-chí ē chhut-hiān tī e-mail ê "Kià-phoe-jîn" (From) hit ūi. Án-ne siu-phoe-jîn chiah ū hoat-tō· kā lí hôe-phoe.',
 'noemailtitle' => 'Bô e-mail chū-chí',
-'noemailtext' => 'Chit ūi iōng-chiá pēng-bô lâu ū-hāu ê e-mail chū-chí.',
-'emailfrom' => 'Lâi chū:',
-'emailto' => 'Khì hō·:',
-'emailsubject' => 'Tê-bo̍k:',
+'noemailtext' => 'Chit ūi iōng-chiá pēng-bô lâu ū-hāu ê e-mail chū-chí, bô tio̍h-sī i bô beh chiap-siū pat-ūi iōng-chiá ê e-mail.',
+'emailfrom' => 'Lâi chū',
+'emailto' => 'Khì hō·',
+'emailsubject' => 'Tê-bo̍k',
 'emailmessage' => 'Sìn-sit:',
 'emailsend' => 'Sàng chhut-khì',
 'emailsent' => 'E-mail sàng chhut-khì ah',
@@ -856,7 +840,7 @@ Lí ê [[Special:Preferences|siat-tēng]] ê tiān-chú-phe tē-chí ē chhut-hi
 'watchnologin' => 'Bô teng-ji̍p',
 'watchnologintext' => 'Lí it-tēng ài [[Special:UserLogin|teng-ji̍p]] chiah ē-tàng siu-kái lí ê kàm-sī-toaⁿ.',
 'addedwatchtext' => "\"[[:\$1]]\" chit ia̍h í-keng ka-ji̍p lí ê [[Special:Watchlist|kàm-sī-toaⁿ]]. Bī-lâi chit ia̍h a̍h-sī siong-koan ê thó-lūn-ia̍h nā ū kái-piàn, ē lia̍t tī hia. Tông-sî tī [[Special:RecentChanges|Chòe-kīn ê kái-piàn]] ē iōng '''chho·-thé''' hián-sī ia̍h ê piau-tê, án-ne khah bêng-hián. Ká-sú lí beh chiōng chit ia̍h tùi lí ê kàm-sī-toaⁿ tû tiāu, khì khòng-chè-tiâu chhi̍h \"Mài kàm-sī\" chiū ē-sái-tit.",
-'removedwatchtext' => '"[[:$1]]" chit ia̍h í-keng tùi lí ê [[Special:Watchlist|kàm-sī-toaⁿ]] soá cháu.',
+'removedwatchtext' => '"[[:$1]]" chit ia̍h í-keng tùi lí ê kàm-sī-toaⁿ tû tiāu.',
 'watch' => 'kàm-sī',
 'watchthispage' => 'Kàm-sī chit ia̍h',
 'unwatch' => 'Mài kàm-sī',
@@ -865,8 +849,8 @@ Lí ê [[Special:Preferences|siat-tēng]] ê tiān-chú-phe tē-chí ē chhut-hi
 'watchlist-details' => 'Kàm-sī-toaⁿ ū {{PLURAL:$1|$1 ia̍h|$1 ia̍h}}, thó-lūn-ia̍h bô sǹg chāi-lāi.',
 'watchmethod-recent' => 'tng teh kíam-cha choè-kīn ê siu-kái, khoàⁿ ū kàm-sī ê ia̍h bô',
 'watchmethod-list' => 'tng teh kiám-cha kàm-sī ê ia̍h khoàⁿ chòe-kīn ū siu-kái bô',
-'watchlistcontains' => 'Lí ê kàm-sī-toaⁿ siu {{PLURAL:$1|ia̍h|ia̍h}} .',
-'wlnote' => "Ē-kha sī tī $3, $4 chìn-chêng {{PLURAL:chi tiám-cheng|'''$2''' tiám-cheng}} í-lâi ê {{PLURAL:$1| chi̍t piàn|'''$1''' piàn}} siu-kái.",
+'watchlistcontains' => 'Lí ê kàm-sī-toaⁿ siu $1 ia̍h.',
+'wlnote' => "Ē-kha sī '''$2''' tiám-cheng í-lāi siōng sin ê $1 ê kái-piàn.",
 'wlshowlast' => 'Hián-sī chêng $1 tiám-cheng $2 ji̍t $3',
 
 # Delete
@@ -876,7 +860,7 @@ Lí ê [[Special:Preferences|siat-tēng]] ê tiān-chú-phe tē-chí ē chhut-hi
 'excontentauthor' => "loē-iông sī: '$1' (î-it ê kòng-hiàn-chiá sī '[[Special:Contributions/$2|$2]]')",
 'exbeforeblank' => "chìn-chêng ê lōe-iông sī: '$1'",
 'exblank' => 'ia̍h khang-khang',
-'historywarning' => 'Kéng-kò: Lí beh thâi ê ia̍h ū {{PLURAL:$1| ê siu-tèng le̍k-sú|ê siu-tèng le̍k-sú}}:',
+'historywarning' => 'Kéng-kò: Lí beh thâi ê ia̍h ū le̍k-sú:',
 'confirmdeletetext' => 'Lí tih-beh kā 1 ê ia̍h a̍h-sī iáⁿ-siōng (pau-koat siong-koan ê le̍k-sú) éng-kiú tùi chu-liāu-khò· thâi tiāu. Chhiáⁿ khak-tēng lí àn-sǹg án-ne chò, jī-chhiáⁿ liáu-kái hiō-kó, jī-chhiáⁿ bô ûi-hoán [[{{MediaWiki:Policy-url}}]].',
 'actioncomplete' => 'Chip-hêng sêng-kong',
 'deletedtext' => '"$1" í-keng thâi tiāu. Tùi $2 khoàⁿ-ē-tio̍h chòe-kīn thâi ê kì-lo̍k.',
@@ -889,14 +873,12 @@ Lí ê [[Special:Preferences|siat-tēng]] ê tiān-chú-phe tē-chí ē chhut-hi
 'rollbacklink' => 'ká tńg khì',
 'rollbackfailed' => 'Ká bē tńg khì',
 'cantrollback' => 'Bô-hoat-tō· kā siu-kái ká-tńg--khì; téng ūi kòng-hiàn-chiá sī chit ia̍h î-it ê chok-chiá.',
-'alreadyrolled' => 'Bô-hoat-tō· kā [[User:$2|$2]] ([[User talk:$2|Thó-lūn]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) tùi [[:$1]] ê siu-kái ká-tńg-khì;
-í-keng ū lâng siu-kái a̍h-sī ká-tńg chit ia̍h.
-Téng 1 ūi siu-kái-chiá sī [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
-'editcomment' => "Pian-chi̍p kài-iàu sī: \"''\$1''\".",
+'alreadyrolled' => 'Bô-hoat-tō· kā [[User:$2|$2]] ([[User talk:$2|Thó-lūn]]) tùi [[:$1]] ê siu-kái ká-tńg-khì; í-keng ū lâng siu-kái a̍h-sī ká-tńg chit ia̍h. Téng 1 ūi siu-kái-chiá sī [[User:$3|$3]] ([[User talk:$3|Thó-lūn]]).',
+'editcomment' => "Siu-kái phêng-lūn sī: \"''\$1''\".",
 
 # Protect
 'protectedarticle' => 'pó-hō͘ "[[$1]]"',
-'protect-title' => 'Kái "$1" ê pó-hō· tíng-kip.',
+'protect-title' => 'Pó-hō· "$1"',
 'prot_1movedto2' => '[[$1]] sóa khì tī [[$2]]',
 'protect-legend' => 'Khak-tēng beh pó-hō·',
 'protectcomment' => 'Lí-iû:',
@@ -948,15 +930,14 @@ Téng 1 ūi siu-kái-chiá sī [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-s
 'ipbsubmit' => 'Hong-só chit ūi iōng-chiá',
 'badipaddress' => 'Bô-hāu ê IP chū-chí',
 'blockipsuccesssub' => 'Hong-só sêng-kong',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] í-keng pī hong-só. <br />Khì [[Special:BlockList|hong-só lia̍t-toaⁿ]] thang khoàⁿ pī hong-só ê .',
-'ipusubmit' => 'Chhú-siau chit ê hong-só',
-'ipblocklist' => 'Siū hong-só ê iōng-chiá',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] í-keng pī hong-só. <br />Khì [[Special:BlockList|IP hong-só lia̍t-toaⁿ]] review hong-só ê IP.',
+'ipusubmit' => 'Chhú-siau hong-só chit ê chū-chí',
+'ipblocklist' => 'Siū hong-só ê IP chū-chí kap iōng-chiá miâ-chheng',
 'blocklink' => 'hong-só',
 'contribslink' => 'kòng-hiàn',
-'autoblocker' => 'Chū-tōng kìm-chí lí sú-iōng, in-ūi lí kap "[[User:$1|$1]]" kong-ke kāng 1 ê IP chū-chí.
-$1 ê kìm-chí lí-iû sī in-ūi "$2".',
+'autoblocker' => 'Chū-tōng kìm-chí lí sú-iōng, in-ūi lí kap "$1" kong-ke kāng 1 ê IP chū-chí (kìm-chí lí-iû "$2").',
 'blocklogentry' => 'hong-só [[$1]], siat kî-hān chì $2 $3',
-'blocklogtext' => 'Chit-ê kì-lio̍k lia̍t-chhut hong-só/khui-só ê tōng-chok. Chū-tōng block ê IP tē-chí bô lia̍t--chhut-lâi ([[Special:BlockList|hong-só chheng-toaⁿ]] ū hiān-chú-sî ū-hāu ê kìm-chí hong-só o·-miâ-toaⁿ).',
+'blocklogtext' => 'Chit-ê log lia̍t-chhut block/unblock ê tōng-chok. Chū-tōng block ê IP chū-chí bô lia̍t--chhut-lâi ([[Special:BlockList]] ū hiān-chú-sî ū-hāu ê block/ban o·-miâ-toaⁿ).',
 'block-log-flags-nocreate' => 'Khui kháu-chō thêng-iōng ah',
 
 # Developer tools
@@ -965,9 +946,9 @@ $1 ê kìm-chí lí-iû sī in-ūi "$2".',
 # Move page
 'move-page' => '徙$1',
 'move-page-legend' => 'Sóa ia̍h',
-'movepagetext' => "Ē-kha chit ê pió iōng lâi kái 1 ê ia̍h ê piau-tê (miâ-chheng); só·-ū siong-koan ê le̍k-sú ē tòe leh sóa khì sin piau-tê.
+'movepagetext' => "Ē-kha chit ê form> iōng lâi kái 1 ê ia̍h ê piau-tê (miâ-chheng); só·-ū siong-koan ê le̍k-sú ē tòe leh sóa khì sin piau-tê.
 Kū piau-tê ē chiâⁿ-chò 1 ia̍h choán khì sin piau-tê ê choán-ia̍h.
-Liân khì kū piau-tê ê liân-kiat (link) bē khì tāng--tio̍h; ē-kì-tit chhiau-chhōe [[Special:DoubleRedirects|siang-thâu (double)]] ê a̍h-sī [[Special:BrokenRedirects|kò·-chiòng ê choán-ia̍h]].
+Liân khì kū piau-tê ê liân-kiat (link) bē khì tāng--tio̍h; ē-kì-tit chhiau-chhōe siang-thâu (double) ê a̍h-sī kò·-chiòng ê choán-ia̍h.
 Lí ū chek-jīm khak-tēng liân-kiat kè-sio̍k liân tio̍h ūi.
 
 Sin piau-tê nā í-keng tī leh (bô phian-chi̍p koè ê khang ia̍h, choán-ia̍h bô chún-sǹg), tō bô-hoat-tō· soá khì hia.
@@ -1004,8 +985,7 @@ Liâu--lo̍h-khì chìn-chêng, chhiáⁿ seng khak-tēng lí ū liáu-kái chia
 'allmessagesname' => 'Miâ',
 'allmessagesdefault' => 'Siat piān ê bûn-jī',
 'allmessagescurrent' => 'Bo̍k-chêng ê bûn-jī',
-'allmessagestext' => 'Che sī MediaWiki: miâ-khong-kan lāi-té ê hē-thóng sìn-sit chheng-toaⁿ.
-Lí nā beh tàu saⁿ-kang hoan-e̍k. Chhiáⁿ kàu [//www.mediawiki.org/wiki/Localisation MediaWiki chāi-tè-hoà] kap [//translatewiki.net translatewiki.net] bāng-chām.',
+'allmessagestext' => 'Chia lia̍t chhut só·-ū tī MediaWiki: miâ-khong-kan ê hē-thóng sìn-sit.',
 
 # Thumbnails
 'thumbnail-more' => 'Hòng-tōa',
@@ -1056,30 +1036,30 @@ Lí ē-sái khoàⁿ i ê goân-sú-bé.',
 'tooltip-summary' => 'Siá chi̍t-ê kán-tan soat-bêng',
 
 # Attribution
-'anonymous' => '{{SITENAME}} ê {{PLURAL:$1|ê bô kì-miâ ê iōng-chiá|ê bô kì-miâ ê iōng-chiá}} .',
+'anonymous' => '{{SITENAME}} bô kì-miâ ê iōng-chiá',
 'siteuser' => '{{SITENAME}} iōng-chiá $1',
 'othercontribs' => 'Kin-kù $1 ê kòng-hiàn.',
-'siteusers' => '{{SITENAME}} {{PLURAL:$2|iōng-chiá|iōng-chiá}} $1',
+'siteusers' => '{{SITENAME}} iōng-chiá $1',
 
 # Patrolling
 'markaspatrolleddiff' => 'Phiau-sī sûn--kòe',
-'markedaspatrolledtext' => 'Soán-te̍k  ê siu-tēng-pún [[:$1]]  í-keng kì-hō chò sûn--kòe.',
+'markedaspatrolledtext' => 'Í-keng phiau-sī chit ê siu-tēng-pún ū lâng sûn--kòe.',
 
 # Image deletion
 'deletedrevision' => 'Kū siu-tēng-pún $1 thâi-tiāu ā.',
 
 # Browsing diffs
-'previousdiff' => '← Khì chêng 1 ê siu-kái',
-'nextdiff' => 'Khì āu 1 ê siu-kái →',
+'previousdiff' => '← Khì chêng 1 ê diff',
+'nextdiff' => 'Khì āu 1 ê diff →',
 
 # Media information
-'imagemaxsize' => "Iáⁿ-siōng toā-sè ê hān-chè:<br />''(ēng tī tóng-àn soeh-bêng-ia̍h)''",
+'imagemaxsize' => 'Iáⁿ-siōng biô-su̍t-ia̍h ê tô· ke̍k-ke hián-sī jōa tōa tiuⁿ:',
 'thumbsize' => 'Sok-tô· (thumbnail) jōa tōa tiuⁿ:',
 'file-nohires' => 'Bô khah koân ê kái-sek-tō͘.',
 
 # Special:NewFiles
 'newimages' => 'Sin iáⁿ-siōng oē-lóng',
-'imagelisttext' => "Í-hā sī '''$1''' {{PLURAL:$1|tiuⁿ|tiuⁿ}} iáⁿ-siōng ê lia̍t-toaⁿ, chiàu $2 pâi-lia̍t.",
+'imagelisttext' => "Í-hā sī '''$1''' tiuⁿ iáⁿ-siōng ê lia̍t-toaⁿ, $2 pâi-lia̍t.",
 'ilsubmit' => 'Kiám-sek',
 'bydate' => 'chiàu ji̍t-kî',
 
@@ -1089,7 +1069,7 @@ Lí ē-sái khoàⁿ i ê goân-sú-bé.',
 
 # External editor support
 'edit-externally' => 'Iōng gōa-pō· èng-iōng nńg-thé pian-chi̍p chit-ê tóng-àn',
-'edit-externally-help' => '(Khoàⁿ [//www.mediawiki.org/wiki/Manual:External_editors siat-tēng soat-bêng] ê chu-liāu.)',
+'edit-externally-help' => 'Chham-khó [http://www.mediawiki.org/wiki/Manual:External_editors Help:External_editors] ê soat-bêng.',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'choân-pō͘',
@@ -1112,11 +1092,7 @@ Chhiáⁿ khui ē-kha chit-ê liân-kiat, thang khak-jīn chit-ê kháu-chō si
 
 $3
 
-Nā-chún *m̄-sī* lí, chhiáⁿ khui ē-kha chit-ê liân-kiat,  chhú-siau khak-jīn ê e-mail.
-
-$5
-
-Chit tiuⁿ phoe ê khak-jīn-bé ē chū-tōng tī $4 kòe-kî.',
+Nā-chún *m̄-sī* lí, chhiáⁿ mài tòe liân-kiat khì.  Chit tiuⁿ phoe ê khak-jīn-bé ē chū-tōng tī $4 kòe-kî.',
 'confirmemail_body_changed' => 'Ū lâng (IP $1, tāi-khài sī lí pún-lâng) tī {{SITENAME}} ēng chit-ê e-mail chū-chí chù-chheh 1 ê kháu-chō "$2".
 
 Chhiáⁿ khui ē-kha chit-ê liân-kiat, thang khak-jīn chit-ê kháu-chō si̍t-chāi sī lí ê:
@@ -1154,12 +1130,12 @@ Chit tiuⁿ phoe ê khak-jīn-bé ē chū-tōng tī $4 kòe-kî.',
 # Auto-summaries
 'autosumm-blank' => 'Kā ia̍h ê loē-iông the̍h tiāu',
 'autoredircomment' => 'Choán khì [[$1]]',
-'autosumm-new' => 'Sin ia̍h: $1...',
+'autosumm-new' => 'Sin ia̍h: $1',
 
 # Watchlist editor
-'watchlistedit-numitems' => 'Lí ê kàm-sī-toaⁿ ū {{PLURAL:$1|$1 ia̍h|$1 ia̍h}}, thó-lūn-ia̍h bô sǹg chāi-lāi.',
+'watchlistedit-numitems' => 'Lí ê kàm-sī-toaⁿ ū $1 ia̍h, thó-lūn-ia̍h bô sǹg chāi-lāi.',
 'watchlistedit-normal-submit' => 'Mài kàm-sī',
-'watchlistedit-normal-done' => 'Í-keng ū {{PLURAL:$1| ia̍h| ia̍h}} ùi lí ê kám-sī-toaⁿ soá cháu:',
+'watchlistedit-normal-done' => 'Í-keng ū $1 ia̍h ùi lí ê kám-sī-toaⁿ soá cháu:',
 
 # Watchlist editing tools
 'watchlisttools-edit' => 'Khoàⁿ koh kái kàm-sī-toaⁿ',
index 1517cac..5ebe516 100644 (file)
@@ -98,6 +98,7 @@ $specialPageAliases = array(
        'Booksources'               => array( 'Bokkilder' ),
        'BrokenRedirects'           => array( 'Ødelagte_omdirigeringer' ),
        'Categories'                => array( 'Kategorier' ),
+       'ChangeEmail'               => array( 'Endre_e-post' ),
        'ChangePassword'            => array( 'Endre_passord', 'TIlbakestill_passord' ),
        'ComparePages'              => array( 'Sammenlign_sider' ),
        'Confirmemail'              => array( 'Bekreft_e-postadresse' ),
@@ -107,6 +108,7 @@ $specialPageAliases = array(
        'DeletedContributions'      => array( 'Slettede_bidrag' ),
        'Disambiguations'           => array( 'Pekere' ),
        'DoubleRedirects'           => array( 'Doble_omdirigeringer' ),
+       'EditWatchlist'             => array( 'Rediger_overvåkningsliste' ),
        'Emailuser'                 => array( 'E-post' ),
        'Export'                    => array( 'Eksporter' ),
        'Fewestrevisions'           => array( 'Færrest_revisjoner' ),
@@ -138,9 +140,11 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'Mine_bidrag' ),
        'Mypage'                    => array( 'Min_side' ),
        'Mytalk'                    => array( 'Min_diskusjon' ),
+       'Myuploads'                 => array( 'Mine_opplastinger' ),
        'Newimages'                 => array( 'Nye_filer', 'Nye_bilder' ),
        'Newpages'                  => array( 'Nye_sider' ),
        'PasswordReset'             => array( 'Nullstill_passord' ),
+       'PermanentLink'             => array( 'Permanent_lenke' ),
        'Popularpages'              => array( 'Populære_sider' ),
        'Preferences'               => array( 'Innstillinger' ),
        'Prefixindex'               => array( 'Prefiksindeks' ),
index f75a514..2749501 100644 (file)
@@ -1395,7 +1395,7 @@ Dat kann nich wedder ungeschehn maakt warrn.',
 'nchanges' => '{{PLURAL:$1|Een Ännern|$1 Ännern}}',
 'recentchanges' => 'Toletzt ännert',
 'recentchanges-legend' => 'Optionen för toletzt ännert',
-'recentchangestext' => 'Op disse Sied warrt de Sieden wiest, de toletzt ännert worrn sünd.',
+'recentchanges-summary' => 'Op disse Sied warrt de Sieden wiest, de toletzt ännert worrn sünd.',
 'recentchanges-feed-description' => 'Behool mit dissen Feed de ne’esten Ännern op dit Wiki in’t Oog.',
 'recentchanges-label-newpage' => "Düsse Ännern stell en ne'e Siet op",
 'recentchanges-label-minor' => 'Dat is en lütte Ännern',
index f28e634..0f2f267 100644 (file)
@@ -170,14 +170,14 @@ $magicWords = array(
        'revisiontimestamp'       => array( '1', 'REVISIETIEDSTEMPEL', 'VERSIETIJD', 'REVISIONTIMESTAMP' ),
        'revisionuser'            => array( '1', 'VERSIEGEBRUKER', 'VERSIEGEBRUIKER', 'REVISIONUSER' ),
        'plural'                  => array( '0', 'MEERVOUD:', 'PLURAL:' ),
-       'fullurl'                 => array( '0', 'HELEURL', 'VOLLEDIGEURL', 'FULLURL:' ),
-       'fullurle'                => array( '0', 'HELEURLE', 'VOLLEDIGEURLE', 'FULLURLE:' ),
+       'fullurl'                 => array( '0', 'HELEURL', 'VOLLEDIGEURL', 'VOLLEDIGEURL:', 'FULLURL:' ),
+       'fullurle'                => array( '0', 'HELEURLE', 'VOLLEDIGEURLE', 'VOLLEDIGEURLE:', 'FULLURLE:' ),
        'lcfirst'                 => array( '0', 'KLEERSTE:', 'LCFIRST:' ),
        'ucfirst'                 => array( '0', 'GLEERSTE:', 'HLEERSTE:', 'UCFIRST:' ),
        'lc'                      => array( '0', 'KL:', 'LC:' ),
        'uc'                      => array( '0', 'HL:', 'UC:' ),
        'raw'                     => array( '0', 'RAUW:', 'RUW:', 'RAW:' ),
-       'displaytitle'            => array( '1', 'TEUNTITEL', 'TOONTITEL', 'TITELTONEN', 'DISPLAYTITLE' ),
+       'displaytitle'            => array( '1', 'TEUNTITEL', 'TOONTITEL', 'TITELTONEN', 'WEERGEGEVENTITEL', 'DISPLAYTITLE' ),
        'newsectionlink'          => array( '1', '__NIEJESECTIEVERWIEZING__', '__NIEUWESECTIELINK__', '__NIEUWESECTIEKOPPELING__', '__NEWSECTIONLINK__' ),
        'nonewsectionlink'        => array( '1', '__GIENNIEJKOPJENVERWIEZING__', '__GEENNIEUWKOPJEVERWIJZING__', '__GEENNIEUWESECTIELINK__', '__NONEWSECTIONLINK__' ),
        'currentversion'          => array( '1', 'DISSEVERSIE', 'HUIDIGEVERSIE', 'CURRENTVERSION' ),
@@ -1598,7 +1598,7 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'nchanges' => '$1 {{PLURAL:$1|wieziging|wiezigingen}}',
 'recentchanges' => 'Leste wiezigingen',
 'recentchanges-legend' => 'Opsies veur leste wiezigingen',
-'recentchangestext' => "Op disse pagina ku'j de leste wiezigingen van disse wiki bekieken.",
+'recentchanges-summary' => 'Op disse pagina ku-j de leste wiezigingen van disse wiki bekieken.',
 'recentchanges-feed-description' => 'Zeuk naor de alderleste wiezingen op disse wiki in disse voer.',
 'recentchanges-label-newpage' => 'Mit disse bewarking is n nieje pagina an-emaakt',
 'recentchanges-label-minor' => 'Dit is n kleine wieziging',
index cd3429b..3fd32e1 100644 (file)
@@ -1354,7 +1354,7 @@ HTML ट्यागहरु जाँच्नुहोस् ।',
 'nchanges' => '$1 {{PLURAL:$1|परिवर्तन|परिवर्तनहरु}}',
 'recentchanges' => 'नयाँ परिवर्तनहरु',
 'recentchanges-legend' => 'हालैको परिवर्तन विकल्पहरु',
-'recentchangestext' => 'विकिका भर्खरका परिवर्तनहरुलाई यस पृष्ठमा पहिल्याउने',
+'recentchanges-summary' => 'विकिका भर्खरका परिवर्तनहरुलाई यस पृष्ठमा पहिल्याउने',
 'recentchanges-feed-description' => 'यो फिडमा रहेको विकीको सवैभन्दा अन्तिम परिवर्तनहरुको जानकारी राख्नुहोस्',
 'recentchanges-label-newpage' => 'यो सम्पादनले नयाँ पृष्ठ निर्माण गरेको छ',
 'recentchanges-label-minor' => 'यो साधारण सम्पादन हो',
index a53e07c..21846b9 100644 (file)
@@ -176,7 +176,6 @@ $magicWords = array(
        'localurl'                => array( '0', 'LOKALEURL', 'LOCALURL:' ),
        'localurle'               => array( '0', 'LOKALEURLE', 'LOCALURLE:' ),
        'articlepath'             => array( '0', 'ARTIKELPAD', 'ARTICLEPATH' ),
-       'pageid'                  => array( '0', 'PAGINAID', 'PAGEID' ),
        'servername'              => array( '0', 'SERVERNAAM', 'SERVERNAME' ),
        'scriptpath'              => array( '0', 'SCRIPTPAD', 'SCRIPTPATH' ),
        'stylepath'               => array( '0', 'STIJLPAD', 'STYLEPATH' ),
@@ -1337,9 +1336,9 @@ Let op dat het gebruiken van de navigatieverwijzingen deze kolom opnieuw instelt
 'mergelogpagetext' => 'Hieronder ziet u een lijst van recente samenvoegingen van een paginageschiedenis naar een andere.',
 
 # Diffs
-'history-title' => 'Geschiedenis van "$1"',
-'difference-title' => 'Verschil tussen versies van "$1"',
-'difference-title-multipage' => 'Verschil tussen pagina\'s "$1" en "$2"',
+'history-title' => '$1: versiegeschiedenis',
+'difference-title' => '$1: verschil tussen versies',
+'difference-title-multipage' => "$1 en $2: verschil tussen pagina's",
 'difference-multipage' => "(Verschil tussen pagina's)",
 'lineno' => 'Regel $1:',
 'compareselectedversions' => 'Geselecteerde versies vergelijken',
@@ -1439,6 +1438,7 @@ De gegevens over {{SITENAME}} zijn mogelijk niet bijgewerkt.',
 'prefs-beta' => 'Bètafunctionaliteit',
 'prefs-datetime' => 'Datum en tijd',
 'prefs-labs' => 'Alphafunctionaliteit',
+'prefs-user-pages' => "Gebruikerspagina's",
 'prefs-personal' => 'Gebruikersprofiel',
 'prefs-rc' => 'Recente wijzigingen',
 'prefs-watchlist' => 'Volglijst',
@@ -1703,7 +1703,7 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'nchanges' => '$1 {{PLURAL:$1|bewerking|bewerkingen}}',
 'recentchanges' => 'Recente wijzigingen',
 'recentchanges-legend' => 'Opties voor recente wijzigingen',
-'recentchangestext' => 'Op deze pagina kunt u de recente wijzigingen in deze wiki bekijken.',
+'recentchanges-summary' => 'Op deze pagina kunt u de recentste wijzigingen in deze wiki bekijken.',
 'recentchanges-feed-description' => 'Met deze feed kunt u de recentste wijzigingen in deze wiki bekijken.',
 'recentchanges-label-newpage' => 'Met deze bewerking is een nieuwe pagina aangemaakt',
 'recentchanges-label-minor' => 'Dit is een kleine bewerking',
@@ -1921,14 +1921,15 @@ Als het probleem aanhoudt, neem dan contact op met een [[Special:ListUsers/sysop
 'backend-fail-writetemp' => 'Het was niet mogelijk naar een tijdelijk bestand te schrijven.',
 'backend-fail-closetemp' => 'Het was niet mogelijk een tijdelijk bestand te sluiten.',
 'backend-fail-read' => 'Het was niet mogelijk het bestand $1 te lezen.',
-'backend-fail-create' => 'Het was niet mogelijk het bestand $1 aan te maken.',
-'backend-fail-maxsize' => 'Het was niet mogelijk het bestand $1 aan te maken omdat het groter is dan {{PLURAL:$2|één byte|$2 bytes}}.',
+'backend-fail-create' => 'Het was niet mogelijk naar het bestand $1 te schrijven.',
+'backend-fail-maxsize' => 'Het was niet mogelijk naar het bestand $1 te schrijven omdat het groter is dan {{PLURAL:$2|één byte|$2 bytes}}.',
 'backend-fail-readonly' => 'Het opslagbackend "$1" kan op dit moment alleen gelezen worden. De opgegeven reden was: "$2"',
 'backend-fail-synced' => 'Het bestand "$1" bevindt zich in een inconsistente toestand in de interne opslagbackends.',
 'backend-fail-connect' => 'Het was niet mogelijk een verbinding te maken met het opslagbackend "$1".',
 'backend-fail-internal' => 'Er is een onbekende fout opgetreden in het opslagbackend "$1".',
 'backend-fail-contenttype' => 'Het inhoudstype van het bestand om in de opslag "$1" op te slaan kon niet bepaald worden.',
 'backend-fail-batchsize' => 'Taak met $1 {{PLURAL:$1|bestandshandeling|bestandshandelingen}} in het opslagbackend; de limiet is $2 {{PLURAL:$2|handeling|handelingen}}.',
+'backend-fail-usable' => 'Het was niet mogelijk naar het bestand $1 te schrijven vanwege onvoldoende rechten of niet-aanwezige mappen of containers.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Het was niet mogelijk een verbinding te maken met de journaldatabase voor het opslagbackend "$1".',
@@ -1991,7 +1992,6 @@ Om beveiligingsreden is img_auth.php uitgeschakeld.',
 'http-curl-error' => 'Fout bij het ophalen van URL: $1',
 'http-host-unreachable' => 'De URL is niet bereikbaar.',
 'http-bad-status' => 'Er is een probleem opgetreden bij het HTTP-verzoek: $1 $2',
-'http-truncated-body' => 'De inhoud van het verzoek is slechts gedeeltelijk ontvangen.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Kon de URL niet bereiken',
@@ -2235,7 +2235,7 @@ Een bestand kan hier dus ten onrechte opgenomen zijn.',
 'notargettitle' => 'Geen doelpagina',
 'notargettext' => 'U hebt niet opgegeven voor welke pagina of gebruiker u deze handeling wilt uitvoeren.',
 'nopagetitle' => 'Te hernoemen pagina bestaat niet',
-'nopagetext' => 'De pagina die u wilt hernoemen bestaat niet.',
+'nopagetext' => 'De doelpagina die u hebt opgegeven bestaat niet.',
 'pager-newer-n' => '{{PLURAL:$1|1 nieuwere|$1 nieuwere}}',
 'pager-older-n' => '{{PLURAL:$1|1 oudere|$1 oudere}}',
 'suppress' => 'Toezicht',
index 8efb939..38ef28f 100644 (file)
@@ -342,7 +342,7 @@ $messages = array(
 # Font style option in Special:Preferences
 'editfont-style' => 'Endre stilen for skrifttypen i området:',
 'editfont-default' => 'Nettlesar i utgangspunktet',
-'editfont-monospace' => 'Skrift med fast breidde',
+'editfont-monospace' => 'Skrift med fast breidd',
 'editfont-sansserif' => 'Skrifttype utan seriffar',
 'editfont-serif' => 'Skrifttype med seriffar',
 
@@ -1180,7 +1180,9 @@ Pass på at den nye sida også har innhald frå den innfletta sida.',
 'mergelogpagetext' => 'Nedanfor finn du ei liste over dei siste flettingane av ein sidehistorikk til ein annan.',
 
 # Diffs
-'history-title' => 'Historikken til «$1»',
+'history-title' => '$1: Versjonshistorikk',
+'difference-title' => '$1: Skilnad mellom versjonar',
+'difference-title-multipage' => '$1 og $2: Skilnad mellom sidene',
 'difference-multipage' => '(Skilnad mellom sider)',
 'lineno' => 'Line $1:',
 'compareselectedversions' => 'Samanlikn valde versjonar',
@@ -1535,7 +1537,7 @@ Dette kan ikke tilbakestillast.',
 'nchanges' => '{{PLURAL:$1|Éi endring|$1 endringar}}',
 'recentchanges' => 'Siste endringar',
 'recentchanges-legend' => 'Alternativ for siste endringar',
-'recentchangestext' => 'På denne sida ser du dei sist endra sidene i {{SITENAME}}.',
+'recentchanges-summary' => 'På denne sida ser du dei sist endra sidene i {{SITENAME}}.',
 'recentchanges-feed-description' => 'Fylg med på dei siste endringane på denne wikien med dette abonnementet.',
 'recentchanges-label-newpage' => 'Denne redigeringa oppretta ei ny side',
 'recentchanges-label-minor' => 'Dette er ei mindre endring',
@@ -1712,6 +1714,9 @@ $1',
 'upload-unknown-size' => 'Ukjend storleik',
 'upload-http-error' => 'Ein HTTP-feil oppstod: $1',
 
+# File backend
+'backend-fail-delete' => 'Kunne ikkje sletta fila «$1».',
+
 # img_auth script messages
 'img-auth-accessdenied' => 'Tilgjenge avslått',
 'img-auth-nopathinfo' => 'PATH_INFO manglar.
@@ -1936,7 +1941,7 @@ Skildringa frå [$2 filskildringssida] der er vist nedanfor.',
 'deadendpages' => 'Blindvegsider',
 'deadendpagestext' => 'Desse sidene har ikkje lenkjer til andre sider på {{SITENAME}}.',
 'protectedpages' => 'Verna sider',
-'protectedpages-indef' => 'Berre vern på ubestemt tid',
+'protectedpages-indef' => 'Berre vern på uavgrensa tid',
 'protectedpages-cascade' => 'Berre djupvern',
 'protectedpagestext' => 'Desse sidene er verna mot flytting og endring',
 'protectedpagesempty' => 'Ingen sider er verna på den valde måten akkurat no.',
@@ -1998,6 +2003,9 @@ Merk at andre internettsider kan ha direkte lenkjer til filer, og difor kan file
 'allpages-bad-ns' => '{{SITENAME}} har ikkje namnerommet «$1».',
 'allpages-hide-redirects' => 'Gøym omdirigeringar',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Sjå siste.',
+
 # Special:Categories
 'categories' => 'Kategoriar',
 'categoriespagetext' => 'Følgjande {{PLURAL:$1|category contains|kategoriar inneheld}} sider eller media.
@@ -2219,6 +2227,7 @@ Sjå [[Special:ProtectedPages|lista over verna sider]] for lista over vern som n
 'unprotectedarticle' => 'fjerna vern av «[[$1]]»',
 'movedarticleprotection' => 'flytta verneinnstillingar frå «[[$2]]» til «[[$1]]»',
 'protect-title' => 'Vernar «$1»',
+'protect-title-notallowed' => 'Sjå vernenivået til «$1»',
 'prot_1movedto2' => '«[[$1]]» flytt til «[[$2]]»',
 'protect-legend' => 'Stadfest vern',
 'protectcomment' => 'Grunngjeving:',
@@ -2238,7 +2247,8 @@ Her er dei noverande innstillingane for sida '''$1''':",
 'protect-level-sysop' => 'Berre administratorar',
 'protect-summary-cascade' => 'djupvern',
 'protect-expiring' => 'endar $1 (UTC)',
-'protect-expiry-indefinite' => 'ubestemt',
+'protect-expiring-local' => 'endar $1',
+'protect-expiry-indefinite' => 'uavgrensa',
 'protect-cascade' => 'Vern alle sidene som er inkludert på denne sida (djupvern)',
 'protect-cantedit' => 'Du kan ikkje endre vernenivået på sida fordi du ikkje har tilgang til å endre henne.',
 'protect-othertime' => 'Anna tid:',
@@ -2303,6 +2313,7 @@ Innhaldet i dei sletta versjonane er berre tilgjengeleg for administratorar.',
 
 Sjå [[Special:Log/delete|sletteloggen]] for eit oversyn over sider som nyleg er sletta eller attoppretta.",
 'undelete-header' => 'Sjå [[Special:Log/delete|sletteloggen]] for dei sist sletta sidene.',
+'undelete-search-title' => 'Søk i sletta sider',
 'undelete-search-box' => 'Søk i sletta sider',
 'undelete-search-prefix' => 'Vis sider frå og med:',
 'undelete-search-submit' => 'Søk',
@@ -2748,6 +2759,7 @@ Vitja [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] og [//trans
 'tooltip-diff' => 'Vis skilnaden mellom din versjon og lagra versjon, utan å lagre.',
 'tooltip-compareselectedversions' => 'Sjå endringane mellom dei valde versjonane av denne sida.',
 'tooltip-watch' => 'Legg denne sida til i overvakingslista di [alt-w]',
+'tooltip-watchlistedit-raw-submit' => 'Oppdater overvakingslista',
 'tooltip-recreate' => 'Ved å trykkje på «Nyopprett» vert sida oppretta på nytt.',
 'tooltip-upload' => 'Start opplastinga',
 'tooltip-rollback' => '«Attenderull»-knappen attenderullar endringar på denne sida med eitt klikk til den førre utgåva av ein annan brukar',
@@ -3210,6 +3222,10 @@ Andre er gøymde som standard.
 'exif-gpslongitude-e' => 'Austleg lengdegrad',
 'exif-gpslongitude-w' => 'Vestleg lengdegrad',
 
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '{{PLURAL:$1|Éin|$1}} meter over havet',
+'exif-gpsaltitude-below-sealevel' => '{{PLURAL:$1|Éin|$1}} meter under havet',
+
 'exif-gpsstatus-a' => 'Måling pågår',
 'exif-gpsstatus-v' => 'Målingsinteroperabilitet',
 
@@ -3559,6 +3575,8 @@ Skriv inn filnamnet utan «{{ns:file}}:»-prefikset.',
 'feedback-error1' => 'Feil: Ukjent resultat frå API',
 'feedback-error2' => 'Feil: Brigdinga gjekk ikkje',
 'feedback-error3' => 'Feil: Saknar svar frå API',
+'feedback-thanks' => 'Takk! Attendemeldinga di er lagd inn på sida «[$2 $1]».',
+'feedback-close' => 'Gjort',
 
 # API errors
 'api-error-badaccess-groups' => 'Du har ikkje løyve til å lasta opp filer til wikien.',
index 27c9388..c15c795 100644 (file)
@@ -1270,7 +1270,7 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'nchanges' => '$1 {{PLURAL:$1|endring|endringer}}',
 'recentchanges' => 'Siste endringer',
 'recentchanges-legend' => 'Alternativ for siste endringer',
-'recentchangestext' => 'Vis de siste endringene til denne siden',
+'recentchanges-summary' => 'Vis de siste endringene til denne siden',
 'recentchanges-feed-description' => 'Følg med på siste endringer i denne wikien med denne matingen.',
 'recentchanges-label-newpage' => 'Denne redigeringen opprettet en ny side',
 'recentchanges-label-minor' => 'Dette er en mindre endring',
index dbd94ff..94b5b1f 100644 (file)
@@ -659,7 +659,7 @@ Ga re fane ka e-poso ya gago go bašumiši ba bangwe ge ba polela le wena ka yon
 'nchanges' => '$1 {{PLURAL:$1|phetogo|diphetogo}}',
 'recentchanges' => 'Diphetogo tša bjale',
 'recentchanges-legend' => 'Dikgetho tša diphetogo tša bjale',
-'recentchangestext' => 'Lebalana diphetogo tše di mphsa-mphsa go wiki  letlakaleng le.',
+'recentchanges-summary' => 'Lebalana diphetogo tše di mphsa-mphsa go wiki  letlakaleng le.',
 'recentchanges-feed-description' => "Lebalana diphetogo tše di mphsa-mphsa go wiki  ka ''feed'' ye.",
 'recentchanges-label-newpage' => 'Phetogo ye e hlomile letlala le lefsa',
 'recentchanges-label-minor' => 'Ye ke phetogo ye nnyenyane',
index 89902ea..de04157 100644 (file)
@@ -1527,7 +1527,7 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'nchanges' => '$1 {{PLURAL:$1|cambiament|cambiaments}}',
 'recentchanges' => 'Darrièrs cambiaments',
 'recentchanges-legend' => 'Opcions dels darrièrs cambiaments',
-'recentchangestext' => 'Vaquí sus aquesta pagina, los darrièrs cambiaments de {{SITENAME}}.',
+'recentchanges-summary' => 'Vaquí sus aquesta pagina, los darrièrs cambiaments de {{SITENAME}}.',
 'recentchanges-feed-description' => "Seguissètz los darrièrs cambiaments d'aqueste wiki dins un flux.",
 'recentchanges-label-newpage' => 'Aquesta modificacion a creat una pagina novèla',
 'recentchanges-label-minor' => 'Aqueste cambiament es menor',
index f73ef25..0d90735 100644 (file)
@@ -72,101 +72,104 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
-       'Activeusers'               => array( 'ସଚଳ_ସଭ୍ୟ' ),
-       'Allmessages'               => array( 'ସବୁ_ମେସେଜ' ),
-       'Allpages'                  => array( 'ସବୁ_ପୃଷ୍ଠା' ),
-       'Ancientpages'              => array( 'ପୁରୁଣା_' ),
-       'Blankpage'                 => array( 'ଖାଲି_ପୃଷ୍ଠା' ),
-       'Block'                     => array( 'ଅଟକାଇଦେବେ', 'ଆଇପି_ଅଟକାଇଦେବେ', 'ଇଉଜରକୁ_ଅଟକାଇଦେବେ' ),
-       'Blockme'                   => array( 'ମୋତେ_ଅଟକାଇଦିଅନ୍ତୁ' ),
-       'Booksources'               => array( 'ଲେଖା_ନିଆଯାଇଥିବା_ବହି' ),
-       'BrokenRedirects'           => array( 'ଭଙ୍ଗା_ଲେଉଟାଣି' ),
+       'Activeusers'               => array( 'ସଚଳସଭ୍ୟ' ),
+       'Allmessages'               => array( 'ସବୁସନ୍ଦେଶ' ),
+       'Allpages'                  => array( 'ସବୁପୃଷ୍ଠା' ),
+       'Ancientpages'              => array( 'ପୁରୁଣାପୃଷ୍ଠା' ),
+       'Badtitle'                  => array( 'ଖରାପନାମ' ),
+       'Blankpage'                 => array( 'ଖାଲିପୃଷ୍ଠା' ),
+       'Block'                     => array( 'ଅଟକାଇବେ', 'ଆଇପିଅଟକାଇବେ', 'ସଭ୍ୟଅଟକାଇବେ' ),
+       'Blockme'                   => array( 'ମୋତେଅଟକାଇବେ' ),
+       'Booksources'               => array( 'ବହିସ୍ରୋତ' ),
+       'BrokenRedirects'           => array( 'ଭଙ୍ଗାଲେଉଟାଣି' ),
        'Categories'                => array( 'ଶ୍ରେଣୀ' ),
-       'ChangeEmail'               => array( 'ଇମେଲ_ବଦଳାଇବେ' ),
-       'ChangePassword'            => array( 'ପାସବାରà­\8dଡ଼_ବଦଳାà¬\87ବେ' ),
-       'ComparePages'              => array( 'ପୃଷ୍ଠାକୁ_ତଉଲିବେ' ),
-       'Confirmemail'              => array( 'ଇମେଲ_ଥୟ_କରିବେ' ),
+       'ChangeEmail'               => array( 'ଇମେଲବଦଳାଇବେ' ),
+       'ChangePassword'            => array( 'ପାସୱାରà­\8dଡ଼ବଦଳାà¬\87ବà­\87', 'ପାସୱାରà­\8dଡ଼ସà­\87à¬\9fà¬\95ରିବେ' ),
+       'ComparePages'              => array( 'ପୃଷ୍ଠାକୁତଉଲିବେ' ),
+       'Confirmemail'              => array( 'ଇମେଲଥୟକରିବେ' ),
        'Contributions'             => array( 'ଅବଦାନ' ),
-       'CreateAccount'             => array( 'ଖାତା_ଖୋଲିବେ' ),
-       'Deadendpages'              => array( 'ଆଗକୁ_ରାହା_ନଥିବା_ପୃଷ୍ଠା' ),
-       'DeletedContributions'      => array( 'ହଟାଇ_ଦିଆଯାଇଥିବା_ଅବଦାନ' ),
-       'Disambiguations'           => array( 'ଆବୁରୁଜାବୁରୁ_କଥା' ),
-       'DoubleRedirects'           => array( 'ଦୁଇଥର_ଲେଉଟାଣି' ),
-       'Emailuser'                 => array( 'ସଭ୍ୟଙ୍କୁ_ମେଲ_କରନ୍ତୁ' ),
-       'Export'                    => array( 'ରପ୍ତାନି_କରିବା' ),
-       'Fewestrevisions'           => array( 'ସବୁଠୁ_କମ_ସଙ୍କଳନ' ),
-       'FileDuplicateSearch'       => array( 'ନକଲି_ଫାଇଲ_ଖୋଜା' ),
+       'CreateAccount'             => array( 'ଖାତାଖୋଲିବେ' ),
+       'Deadendpages'              => array( 'ଆଗକୁରାହାନଥିବାପୃଷ୍ଠା' ),
+       'DeletedContributions'      => array( 'ହଟାଇଦିଆଯାଇଥିବାଅବଦାନ' ),
+       'Disambiguations'           => array( 'ବହୁବିକଳ୍ପୀ' ),
+       'DoubleRedirects'           => array( 'ଦୁଇଥରଲେଉଟାଣି' ),
+       'EditWatchlist'             => array( 'ଧ୍ୟାନସୂଚୀବଦଳାଇବେ' ),
+       'Emailuser'                 => array( 'ସଭ୍ୟଙ୍କୁମେଲକରିବେ' ),
+       'Export'                    => array( 'ରପ୍ତାନି' ),
+       'Fewestrevisions'           => array( 'ସବୁଠୁକମସଙ୍କଳନ' ),
+       'FileDuplicateSearch'       => array( 'ଫାଇଲନକଲିଖୋଜା' ),
        'Filepath'                  => array( 'ଫାଇଲରାସ୍ତା' ),
        'Import'                    => array( 'ଆମଦାନି' ),
-       'Invalidateemail'           => array( 'କାମକରୁନଥିବା_ଇମେଲ' ),
-       'BlockList'                 => array( 'ତାଲିକାକୁ__ଅଟକାଇଦେବା' ),
-       'LinkSearch'                => array( 'ଲିଙ୍କ_ଖୋଜା' ),
-       'Listadmins'                => array( 'ପରିଛା_ତାଲିକା' ),
-       'Listbots'                  => array( 'ବଟ_ମାନଙ୍କ_ତାଲିକା' ),
-       'Listfiles'                 => array( 'ଫାଇଲ_ତାଲିକା' ),
-       'Listgrouprights'           => array( 'ଗୋଠ_ନିୟମ_ତାଲିକା' ),
-       'Listredirects'             => array( 'ଲେଉଟାଣି_ତାଲିକା' ),
-       'Listusers'                 => array( 'ଇଉଜର_ତାଲିକା' ),
-       'Lockdb'                    => array( 'ଡାଟାବେସ‌_କିଳିଦେବା' ),
+       'Invalidateemail'           => array( 'କାମକରୁନଥିବାଇମେଲ' ),
+       'JavaScriptTest'            => array( 'ଜାଭାସ୍କ୍ରିପ୍ଟଟେଷ୍ଟ' ),
+       'BlockList'                 => array( 'ତାଲିକାଅଟକାଇବେ' ),
+       'LinkSearch'                => array( 'ଲିଙ୍କଖୋଜା' ),
+       'Listadmins'                => array( 'ପରିଛାତାଲିକା' ),
+       'Listbots'                  => array( 'ବଟତାଲିକା' ),
+       'Listfiles'                 => array( 'ଫାଇଲତାଲିକା' ),
+       'Listgrouprights'           => array( 'ଗୋଠନିୟମତାଲିକା' ),
+       'Listredirects'             => array( 'ଲେଉଟାଣିତାଲିକା' ),
+       'Listusers'                 => array( 'ସଭ୍ୟତାଲିକା' ),
+       'Lockdb'                    => array( 'ଡାଟାବେସ‌କିଳିଦେବା' ),
        'Log'                       => array( 'ଲଗ' ),
-       'Lonelypages'               => array( 'ଏକୁଟିଆ_ପୃଷ୍ଠା' ),
-       'Longpages'                 => array( 'ଲମ୍ବା_ପୃଷ୍ଠା' ),
-       'MergeHistory'              => array( 'ଇତିହାସକୁ_ମିଶାଇଦେବା' ),
+       'Lonelypages'               => array( 'ଏକୁଟିଆପୃଷ୍ଠା' ),
+       'Longpages'                 => array( 'ଲମ୍ବାପୃଷ୍ଠା' ),
+       'MergeHistory'              => array( 'ଇତିହାସକୁମିଶାଇବେ' ),
        'MIMEsearch'                => array( 'MIME_ଖୋଜା' ),
-       'Mostcategories'            => array( 'ଅଧିକ_ଶ୍ରେଣୀ' ),
-       'Mostimages'                => array( 'ଅଧିକ_ଯୋଡ଼ା_ଫାଇଲ' ),
-       'Mostlinked'                => array( 'ଅଧିକ_ଯୋଡ଼ା_ପୃଷ୍ଠା' ),
-       'Mostlinkedcategories'      => array( 'ଅଧିକ_ଯୋଡ଼ା_ଶ୍ରେଣୀ' ),
-       'Mostlinkedtemplates'       => array( 'ଅଧିକ_ଯୋଡ଼ା_ଛାଞ୍ଚ' ),
-       'Mostrevisions'             => array( 'ଅଧିକ_ସଙ୍କଳନ' ),
-       'Movepage'                  => array( 'ପà­\83ଷà­\8dଠାà¬\95à­\81_à¬\98à­\81à¬\9eà­\8dà¬\9aାà¬\87ବା' ),
-       'Mycontributions'           => array( 'ମୋ_ଅବଦାନ' ),
-       'Mypage'                    => array( 'ମୋ_ପୃଷ୍ଠା' ),
-       'Mytalk'                    => array( 'ମୋ_ଆଲୋଚନା' ),
-       'Myuploads'                 => array( 'ମୋ_ଅପଲୋଡ଼' ),
-       'Newimages'                 => array( 'ନୂଆ_ଫାଇଲ' ),
-       'Newpages'                  => array( 'ନୂଆ_ପୃଷ୍ଠା' ),
-       'PermanentLink'             => array( 'à¬\9aିରà¬\95ାଳର_ଲିà¬\99à­\8dà¬\95' ),
-       'Popularpages'              => array( 'ଜଣାଶୁଣା_ପୃଷ୍ଠା' ),
-       'Preferences'               => array( 'ପସନ୍ଦସବୁ' ),
-       'Prefixindex'               => array( 'ଆଗରେ_ଯୋଡ଼ାହେବା_ଇଣ୍ଡେକ୍ସ' ),
-       'Protectedpages'            => array( 'କିଳାଯାଇଥିବା_ପୃଷ୍ଠା' ),
-       'Protectedtitles'           => array( 'କିଳାଯାଇଥିବା_ନାଆଁ' ),
-       'Randompage'                => array( 'à¬\87à¬\86ଡà­\81_à¬\87à¬\86ଡà­\81' ),
-       'Randomredirect'            => array( 'ଜାହିତାହି_ଫେରଣାଲେଉଟାଣି' ),
-       'Recentchanges'             => array( 'ନଗଦ_ବଦଳ' ),
-       'Recentchangeslinked'       => array( 'ଜୋଡ଼ାଥିବା_ନଗଦ_ବଦଳ' ),
+       'Mostcategories'            => array( 'ଅଧିକଶ୍ରେଣୀଥିବା' ),
+       'Mostimages'                => array( 'ଅଧିକଯୋଡ଼ାଫାଇଲ' ),
+       'Mostlinked'                => array( 'ଅଧିକଯୋଡ଼ାପୃଷ୍ଠା' ),
+       'Mostlinkedcategories'      => array( 'ଅଧିକଯୋଡ଼ାଶ୍ରେଣୀ' ),
+       'Mostlinkedtemplates'       => array( 'ଅଧିକଯୋଡ଼ାଛାଞ୍ଚ' ),
+       'Mostrevisions'             => array( 'ଅଧିକସଙ୍କଳନ' ),
+       'Movepage'                  => array( 'ପà­\83ଷà­\8dଠାà¬\98à­\81à¬\9eà­\8dà¬\9aାà¬\87ବà­\87' ),
+       'Mycontributions'           => array( 'ମୋଅବଦାନ' ),
+       'Mypage'                    => array( 'ମୋପୃଷ୍ଠା' ),
+       'Mytalk'                    => array( 'ମୋଆଲୋଚନା' ),
+       'Myuploads'                 => array( 'ମୋଅପଲୋଡ଼' ),
+       'Newimages'                 => array( 'ନୂଆଫାଇଲ' ),
+       'Newpages'                  => array( 'ନୂଆପୃଷ୍ଠା' ),
+       'PermanentLink'             => array( 'ଚିରକାଳଲିଙ୍କ' ),
+       'Popularpages'              => array( 'ଜଣାଶୁଣାପୃଷ୍ଠା' ),
+       'Preferences'               => array( 'ପସନ୍ଦ' ),
+       'Prefixindex'               => array( 'ଆଗରେଯୋଡ଼ାହେବାଇଣ୍ଡେକ୍ସ' ),
+       'Protectedpages'            => array( 'କିଳାଯାଇଥିବାପୃଷ୍ଠା' ),
+       'Protectedtitles'           => array( 'କିଳାଯାଇଥିବାନାମ' ),
+       'Randompage'                => array( 'à¬\9cାହିତାହି', 'à¬\9cାହିତାହିପà­\83ଷà­\8dଠା' ),
+       'Randomredirect'            => array( 'ଜାହିତାହିଲେଉଟାଣି' ),
+       'Recentchanges'             => array( 'ନଗଦବଦଳ' ),
+       'Recentchangeslinked'       => array( 'ଜୋଡ଼ାଥିବାନଗଦବଦଳ', 'ପାଖାପାଖିବଦଳ' ),
        'Revisiondelete'            => array( 'ସଙ୍କଳନଲିଭାଇଦିଅଦେବେ' ),
        'RevisionMove'              => array( 'ସଙ୍କଳନ' ),
        'Search'                    => array( 'ଖୋଜନ୍ତୁ' ),
-       'Shortpages'                => array( 'ଛୋଟ_ପୃଷ୍ଠା' ),
-       'Specialpages'              => array( 'ବିଶେଷ_ପୃଷ୍ଠା' ),
+       'Shortpages'                => array( 'ଛୋଟପୃଷ୍ଠା' ),
+       'Specialpages'              => array( 'ବିଶେଷପୃଷ୍ଠା' ),
        'Statistics'                => array( 'ଗଣନା' ),
        'Tags'                      => array( 'ଚିହ୍ନସମୂହ' ),
        'Unblock'                   => array( 'ଫିଟାଇଦେବେ' ),
-       'Uncategorizedcategories'   => array( 'ଅସଜଡ଼ା_ଶ୍ରେଣୀ' ),
-       'Uncategorizedimages'       => array( 'ସà¬\9cଡ଼ା_ଶà­\8dରà­\87ଣà­\80ର_ଫାଇଲ' ),
+       'Uncategorizedcategories'   => array( 'ଅସଜଡ଼ାଶ୍ରେଣୀ' ),
+       'Uncategorizedimages'       => array( 'à¬\85ସà¬\9cଡ଼ାଶà­\8dରà­\87ଣà­\80ରଫାଇଲ' ),
        'Uncategorizedpages'        => array( 'ଅସଜଡ଼ା_ଫାଇଲସବୁ' ),
-       'Uncategorizedtemplates'    => array( 'ଅସଜଡ଼ା_ଛାଞ୍ଚ' ),
-       'Undelete'                  => array( 'ଲିଭାନà­\8dତà­\81_ନାହିà¬\81' ),
+       'Uncategorizedtemplates'    => array( 'ଅସଜଡ଼ାଛାଞ୍ଚ' ),
+       'Undelete'                  => array( 'à¬\85ଣଲିଭା' ),
        'Unlockdb'                  => array( 'DBଖୋଲିବା' ),
-       'Unusedcategories'          => array( 'ବ୍ୟବହାର_ହୋଇନଥିବା_ଶ୍ରେଣୀ' ),
-       'Unusedimages'              => array( 'ବ୍ୟବହାର_ହୋଇନଥିବା_ଫାଇଲ' ),
-       'Unusedtemplates'           => array( 'ବ୍ୟବହାର_ହୋଇନଥିବା_ଛାଞ୍ଚ' ),
-       'Unwatchedpages'            => array( 'ଦେଖାଯାଇନଥିବା_ପୃଷ୍ଠାସବୁ' ),
+       'Unusedcategories'          => array( 'ବ୍ୟବହାରହୋଇନଥିବାଶ୍ରେଣୀ' ),
+       'Unusedimages'              => array( 'ବ୍ୟବହାରହୋଇନଥିବାଫାଇଲ' ),
+       'Unusedtemplates'           => array( 'ବ୍ୟବହାରହୋଇନଥିବାଛାଞ୍ଚ' ),
+       'Unwatchedpages'            => array( 'ଦେଖାଯାଇନଥିବାପୃଷ୍ଠାସବୁ' ),
        'Upload'                    => array( 'ଅପଲୋଡ଼' ),
-       'UploadStash'               => array( 'ଷ୍ଟାସ_ଅପଲୋଡ଼_କରନ୍ତୁ' ),
-       'Userlogin'                 => array( 'ସଭ୍ୟ_ଲଗ_ଇନ' ),
-       'Userlogout'                => array( 'ସଭ୍ୟ_ଲଗ_ଆଉଟ' ),
-       'Userrights'                => array( 'ସଭ୍ୟ_ଅଧିକାର' ),
+       'UploadStash'               => array( 'ଷ୍ଟାସଅପଲୋଡ଼' ),
+       'Userlogin'                 => array( 'ସଭ୍ୟଲଗଇନ' ),
+       'Userlogout'                => array( 'ସଭ୍ୟଲଗଆଉଟ' ),
+       'Userrights'                => array( 'ସଭ୍ୟଅଧିକାର' ),
        'Version'                   => array( 'ସଂସ୍କରଣ' ),
-       'Wantedcategories'          => array( 'ଦରକାରି_ଶ୍ରେଣୀ' ),
-       'Wantedfiles'               => array( 'ଦରକାରି_ଫାଇଲ' ),
-       'Wantedpages'               => array( 'ଦରକାରି_ପୃଷ୍ଠା' ),
-       'Wantedtemplates'           => array( 'ଦରକାରି_ଛାଞ୍ଚ' ),
-       'Watchlist'                 => array( 'ଦେଖଣା_ତାଲିକା' ),
-       'Whatlinkshere'             => array( 'ଏଠାରେ_କଣ_ଲିଙ୍କ_ଅଛି' ),
-       'Withoutinterwiki'          => array( 'ଇଣ୍ଟରଉଇକି_ବିନା' ),
+       'Wantedcategories'          => array( 'ଦରକାରିଶ୍ରେଣୀ' ),
+       'Wantedfiles'               => array( 'ଦରକାରିଫାଇଲ' ),
+       'Wantedpages'               => array( 'ଦରକାରିପୃଷ୍ଠା' ),
+       'Wantedtemplates'           => array( 'ଦରକାରିଛାଞ୍ଚ' ),
+       'Watchlist'                 => array( 'ଦେଖଣାତାଲିକା' ),
+       'Whatlinkshere'             => array( 'ଏଠାରେକଣଲିଙ୍କଅଛି' ),
+       'Withoutinterwiki'          => array( 'ଇଣ୍ଟରଉଇକିବିନା' ),
 );
 
 $magicWords = array(
@@ -329,7 +332,7 @@ $messages = array(
 'february' => 'ଫେବୃଆରୀ',
 'march' => 'ମାର୍ଚ୍ଚ',
 'april' => 'ଅପ୍ରେଲ',
-'may_long' => 'ମà­\87',
+'may_long' => 'ମà¬\87',
 'june' => 'ଜୁନ',
 'july' => 'ଜୁଲାଇ',
 'august' => 'ଅଗଷ୍ଟ',
@@ -341,7 +344,7 @@ $messages = array(
 'february-gen' => 'ଫେବୃଆରୀ',
 'march-gen' => 'ମାର୍ଚ୍ଚ',
 'april-gen' => 'ଅପ୍ରେଲ',
-'may-gen' => 'ମà­\87',
+'may-gen' => 'ମà¬\87',
 'june-gen' => 'ଜୁନ',
 'july-gen' => 'ଜୁଲାଇ',
 'august-gen' => 'ଅଗଷ୍ଟ',
@@ -353,7 +356,7 @@ $messages = array(
 'feb' => 'ଫେବୃଆରୀ',
 'mar' => 'ମାର୍ଚ୍ଚ',
 'apr' => 'ଅପ୍ରେଲ',
-'may' => 'ମà­\87',
+'may' => 'ମà¬\87',
 'jun' => 'ଜୁନ',
 'jul' => 'ଜୁଲାଇ',
 'aug' => 'ଅଗଷ୍ଟ',
@@ -1536,7 +1539,7 @@ HTML ଟାଗ ପରଖିନିଅନ୍ତୁ ।',
 
 # User rights log
 'rightslog' => 'ସଭ୍ୟଙ୍କ ଅଧିକାରର ଲଗ',
-'rightslogtext' => 'ସଭ୍ୟଙ୍କ ଅଧିକାର ବଦଳର ଏହା ଏକ ଇତିହାସ ।',
+'rightslogtext' => 'ସଭ୍ୟଙ୍କ ଅଧିକାର ବଦଳର ଏହା ଏକ ଇତିହାସ ।',
 'rightslogentry' => '$1 ପାଇଁ ଗୋଠ ସଭ୍ୟପଦର ଅବସ୍ଥା $2 ରୁ $3କୁ ବଦଳାଇଦିଆଗଲା',
 'rightslogentry-autopromote' => '$2 ରୁ $3କୁ ଆପେଆପେ ଉନ୍ନୀତ କରାଗଲା',
 'rightsnone' => '(କିଛି ନାହିଁ)',
@@ -1582,7 +1585,7 @@ HTML ଟାଗ ପରଖିନିଅନ୍ତୁ ।',
 'nchanges' => '$1 {{PLURAL:$1|ବଦଳ|ବଦଳସବୁ}}',
 'recentchanges' => 'ନଗଦ ବଦଳ',
 'recentchanges-legend' => 'ଏବେ କରାଯାଇଥିବା ଅଦଳବଦଳ',
-'recentchangestext' => 'ଏହି ପୃଷ୍ଠାରେ ଏହି ଉଇକିରେ ନଗଦ ବଦଳର ନିଘା ରଖିବେ',
+'recentchanges-summary' => 'ଏହି ପୃଷ୍ଠାରେ ଏହି ଉଇକିରେ ନଗଦ ବଦଳର ନିଘା ରଖିବେ',
 'recentchanges-feed-description' => 'ଏହି ଉଇକିରେ ଏହି ଫିଡ଼ଟିର ନଗଦ ବଦଳ ଦେଖାଇବେ ।',
 'recentchanges-label-newpage' => 'ଏହି ବଦଳ ନୂଆ ଫରଦଟିଏ ତିଆରିକଲା',
 'recentchanges-label-minor' => 'ଏହା ଗୋଟିଏ ଛୋଟ ବଦଳ',
@@ -3633,7 +3636,7 @@ $5
 'watchlisttools-raw' => 'ଫାଙ୍କା ଦେଖଣା ତାଲିକାଟିର ସମ୍ପାଦନା କରିବେ',
 
 # Signatures
-'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ଆଲୋଚନା]])',
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ମà­\8b à¬\86ଲà­\8bà¬\9aନା]])',
 
 # Core parser functions
 'unknown_extension_tag' => 'ଅଜଣା ଏକ୍ସଟେନସନ ଚିହ୍ନ "$1"',
index 4ed53d5..be685eb 100644 (file)
@@ -188,7 +188,7 @@ $messages = array(
 'broken-file-category' => 'Файлтæм саст æрвитæнтæ кæм ис, ахæм фæрстæ',
 
 'about' => 'Афыст',
-'article' => 'СÑ\82аÑ\82Ñ\8cÑ\8f',
+'article' => 'ФÑ\8bÑ\81Ñ\82Ñ\83аÑ\86',
 'newwindow' => '(кæны ног рудзынджы)',
 'cancel' => 'Ныууадзын',
 'moredotdotdot' => 'Фылдæр…',
@@ -232,8 +232,8 @@ $messages = array(
 'help' => 'Æххуыс',
 'search' => 'Агуырд',
 'searchbutton' => 'Агурын',
-'go' => 'СÑ\82аÑ\82Ñ\8cÑ\8fмæ',
-'searcharticle' => 'Ð\90гÑ\83Ñ\80Ñ\8bн',
+'go' => 'ФÑ\8bÑ\81Ñ\82Ñ\83аÑ\86мæ',
+'searcharticle' => 'УаÑ\86мæ',
 'history' => 'Фарсы истори',
 'history_short' => 'Истори',
 'updatedmarker' => 'ноггонд мæ фæстаг æрбахызтæй',
@@ -260,7 +260,7 @@ $messages = array(
 'specialpage' => 'Сæрмагонд фарс',
 'personaltools' => 'Мигæнæнтæ',
 'postcomment' => 'Ног хай',
-'articlepage' => 'Фен статья',
+'articlepage' => 'Фенын фыстуац',
 'talk' => 'Тæрхон',
 'views' => 'Æркæстытæ',
 'toolbox' => 'Фæрæзтæ',
@@ -273,7 +273,7 @@ $messages = array(
 'categorypage' => 'Категорийы фарс фен',
 'viewtalkpage' => 'Тæрхон фен',
 'otherlanguages' => 'Æндæр æвзæгтыл',
-'redirectedfrom' => '(Ð\90Ñ\86Ñ\8b Ñ\81Ñ\82аÑ\82Ñ\8cÑ\8fйæ æрвыст: «$1»)',
+'redirectedfrom' => '(Ð\90Ñ\86Ñ\8b Ñ\84Ñ\8bÑ\81Ñ\82Ñ\83аÑ\86æй æрвыст: «$1»)',
 'redirectpagesub' => 'Рарвысты фарс',
 'lastmodifiedat' => 'Ацы фарс фæстаг хатт ивд æрцыд: $1, $2.',
 'viewcount' => 'Ацы фарс домд æрцыд {{PLURAL:$1|иу хатт|$1 хатты}}.',
@@ -351,7 +351,7 @@ $1',
 'sort-ascending' => 'Радæвæрын фылдæркæнынмæ',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'СÑ\82аÑ\82Ñ\8cÑ\8f',
+'nstab-main' => 'ФÑ\8bÑ\81Ñ\82Ñ\83аÑ\86',
 'nstab-user' => 'Архайæджы фарс',
 'nstab-media' => 'Мультимеди',
 'nstab-special' => 'Сæрмагонд фарс',
@@ -574,7 +574,7 @@ $2',
 'italic_sample' => 'Курсив',
 'italic_tip' => 'Курсив',
 'link_sample' => 'Æрвитæны текст',
-'link_tip' => 'Мидæг æрвитæн (æндæр статьямæ)',
+'link_tip' => 'Мидæггаг æрвитæн',
 'extlink_sample' => 'http://www.example.com æрвитæны текст',
 'extlink_tip' => 'Æддаг æрвитæн (префикс http:// ма рох кæн)',
 'headline_sample' => 'Сæргонд текст',
@@ -863,7 +863,7 @@ $2',
 'nchanges' => '$1 {{PLURAL:$1|ивд|ивды}}',
 'recentchanges' => 'Фæстаг ивдтытæ',
 'recentchanges-legend' => 'Фæстаг ивдтыты фадæттæ',
-'recentchangestext' => 'Ацы фарсыл фæстаг ивдтытæ фенæн ис.',
+'recentchanges-summary' => 'Ацы фарсыл викийы фæстаг ивдтытæ фенæн ис.',
 'recentchanges-feed-description' => 'Хъус дарын викийы фæстаг ивдтытæм ацы лæсæны уылты.',
 'recentchanges-label-newpage' => 'Ацы ивд нæуæг фарс бакодта',
 'recentchanges-label-minor' => 'Ай у чысыл ивд',
index 213d8bb..1ae3aaa 100644 (file)
@@ -487,6 +487,11 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 'template-semiprotected' => '(ਅਰਧ-ਸੁਰੱਖਿਅਤ)',
 'permissionserrors' => 'ਅਧਿਕਾਰ ਗਲਤੀਆਂ',
 'permissionserrorstext' => 'ਤੁਹਾਨੂੰ ਇੰਝ ਕਰਨ ਦੇ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ। ਹੇਠ ਦਿੱਤੇ {{PLURAL:$1|ਕਾਰਨ|ਕਾਰਨ}} ਨੇ:',
+'recreate-moveddeleted-warn' => "'''ਖ਼ਬਰਦਾਰ: ਤੁਸੀਂ ਐਸ ਪੰਨਾ ਰਚ ਰਹੇ ਹੋ ਜਿਸ ਨੂੰ ਪਹਿਲੇ ਹਟਾਇਆ ਜਾ ਚੁੱਕ ਹੈ।'''
+ਖਿਆਲ ਕਰੋ ਕਿ ਕੀ ਇਸ ਪੰਨੇ ਦਾ ਕਾਇਮ ਰਹਿਣਾ ਠੀਕ ਹੈ।
+ਇਸ ਪੰਨੇ ਨੂੰ ਹਟਾਉਣ ਯਾ ਜਘ੍ਹਾ ਬਦਲੀ ਦਾ ਚਿੱਠਾ ਹੇਠਾਂ ਦਿੱਤਾ ਹੈ।",
+'moveddeleted-notice' => 'ਇਹ ਪੰਨਾ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।
+ਪੰਨੇ ਦੇ ਹਟਾਣ ਯਾ ਜਗ੍ਹਾ ਬਦਲੀ ਦਾ ਚਿੱਠਾ,ਹਵਾਲੇ ਲਈ ਹੇਠ ਦਿੱਤਾ ਹੈ।',
 
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''ਖ਼ਬਰਦਾਰ: ਸੰਚੇ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ।ਕੁਝ ਸੰਚੇ ਛੁਟ ਜਾਣਗੇ।",
@@ -680,7 +685,8 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 # Recent changes
 'recentchanges' => 'ਤਾਜ਼ਾ ਬਦਲਾਅ',
 'recentchanges-legend' => 'ਤਾਜ਼ਾ ਬਦਲਾਅ ਚੋਣਾਂ',
-'recentchangestext' => 'ਇਸ ਵਿਕੀ ਪਰ ਹਾਲ ਵਿਚ ਹੋਏ ਬਦਲਾਅਦੇਖੇ ਜਾ ਸਕਦੇ ਹਨ।',
+'recentchanges-summary' => 'ਇਸ ਵਿਕੀ ਪਰ ਹਾਲ ਵਿਚ ਹੋਏ ਬਦਲਾਅਦੇਖੇ ਜਾ ਸਕਦੇ ਹਨ।',
+'recentchanges-feed-description' => 'ਇਸ ਵਿਕੀ ਪਰ ਹਾਲ ਵਿਚ ਹੋਏ ਬਦਲਾਅ ਇਸ ਫ਼ੀਡ ਵਿਚ ਦੇਖੇ ਜਾ ਸਕਦੇ ਹਨ।',
 'recentchanges-label-newpage' => 'ਇਹ ਸੋਧ ਨੇ ਨਵਾਂ ਸਫ਼ਾ ਬਣਾਇਆ ਹੈ',
 'recentchanges-label-minor' => 'ਇਹ ਛੋਟੀ ਸੋਧ ਹੈ',
 'recentchanges-label-bot' => 'ਇਹ ਸੋਧ ਨੂੰ ਬੋਟ ਵਲੋਂ ਕੀਤਾ ਗਿਆ ਹੈ',
@@ -833,6 +839,7 @@ to upload files.',
 'prefixindex' => 'ਇਸ ਅਗੇਤਰ ਵਾਲੇ ਸਾਰੇ ਪੰਨੇ',
 'shortpages' => 'ਛੋਟੇ ਪੇਜ',
 'listusers' => 'ਯੂਜ਼ਰ ਲਿਸਟ',
+'usercreated' => ' $1 ਨੂੰ $2 ਵਜੇ {{GENDER:$3|ਮੈਂਬਰ ਨੇ ਰਚਿਆ}}',
 'newpages' => 'ਨਵੇਂ ਪੇਜ',
 'newpages-username' => 'ਯੂਜ਼ਰ ਨਾਂ:',
 'ancientpages' => 'ਸਭ ਤੋਂ ਪੁਰਾਣੇ ਪੇਜ',
@@ -875,6 +882,9 @@ to upload files.',
 'listusers-submit' => 'ਵੇਖੋ',
 'listusers-noresult' => 'ਕੋਈ ਯੂਜ਼ਰ ਨਹੀਂ ਲੱਭਿਆ।',
 
+# Special:Log/newusers
+'newuserlogpage' => 'ਮੈਂਬਰ ਖਾਤਾ ਉਸਾਰੀ ਚਿੱਠਾ',
+
 # Special:ListGroupRights
 'listgrouprights-group' => 'ਗਰੁੱਪ',
 'listgrouprights-members' => '(ਮੈਂਬਰਾਂ ਦੀ ਲਿਸਟ)',
@@ -973,7 +983,7 @@ to upload files.',
 
 # Contributions
 'contributions' => 'ਯੂਜ਼ਰ ਯੋਗਦਾਨ',
-'contributions-title' => '$੧ à¨¦à¨¾ à¨¯à©\8bà¨\97ਦਾਨ',
+'contributions-title' => '$੧ à¨¦à©\80 à¨°à¨\9aਨਾ',
 'mycontris' => 'ਮੇਰਾ ਯੋਗਦਾਨ',
 'contribsub2' => '$1 ($2) ਲਈ',
 'uctop' => '(ਉੱਤੇ)',
@@ -987,6 +997,7 @@ to upload files.',
 'sp-contributions-talk' => 'ਗੱਲਬਾਤ',
 'sp-contributions-search' => 'ਯੋਗਦਾਨ ਖੋਜੋ',
 'sp-contributions-username' => 'IP ਐਡਰੈੱਸ ਜਾਂ ਯੂਜ਼ਰ ਨਾਂ:',
+'sp-contributions-toponly' => 'ਕੇਵਲ ਉਹੀ ਸੰਪਾਦਨ ਦਿਖਾਓ ਜੋ ਨਵੀਨਤਮ ਸੋਧਾਂ ਹਨ।',
 'sp-contributions-submit' => 'ਖੋਜ',
 
 # What links here
index 9f98566..db1ff10 100644 (file)
@@ -942,7 +942,7 @@ Nung ibie me, magamit ya bang kilalanan ing kekang ambag.',
 'nchanges' => '$1 {{PLURAL:$1|miyalilan|miyalilan}}',
 'recentchanges' => 'Bayung mengayalili',
 'recentchanges-legend' => 'Pipamilinan kareng bayung mengayalili',
-'recentchangestext' => 'Talukyan mo reng tawling diling mengayalilan king bulung a ini.',
+'recentchanges-summary' => 'Talukyan mo reng tawling diling mengayalilan king bulung a ini.',
 'recentchanges-feed-description' => 'Talukian mo reng bayung diling mengayalili king wiki king feed a ini.',
 'rcnote' => "King lalam {{PLURAL:$1|is '''1''' change|ding tauling '''$1''' pamagbayu}} aniang tauling {{PLURAL:$2|day|'''$2''' aldo}}, aniang $5, $4.",
 'rcnotefrom' => 'Atilu king lalam deng miyalilan manibat anyang <b>$2</b> (angga king <b>$1</b> makalto).',
index 13916a6..e8a3fb1 100644 (file)
@@ -679,6 +679,8 @@ Uzasadnienie blokady: ''$2''.",
 'filereadonlyerror' => 'Nie można zmodyfikować pliku "$1" ponieważ repozytorium plików "$2" jest w trybie tylko do odczytu.
 
 Administrator blokujący go podał następujący powód "\'\'$3\'\'".',
+'invalidtitle-knownnamespace' => 'Nieprawidłowa nazwa w obszarze nazw "$2" o treści "$3"',
+'invalidtitle-unknownnamespace' => 'Nieprawidłowa nazwa z nieznaną liczbą przestrzeni nazw  $1  o treści "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Zła konfiguracja – nieznany skaner antywirusowy ''$1''",
@@ -1072,6 +1074,12 @@ Argument ten będzie pominięty.',
 'parser-template-loop-warning' => 'Wykryto pętlę w szablonie [[$1]]',
 'parser-template-recursion-depth-warning' => 'Przekroczno limit głębokości rekurencji szablonu ($1)',
 'language-converter-depth-warning' => 'Przekroczono ograniczenie ($1) głębokości zagnieżdżenia konwersji językowej',
+'node-count-exceeded-category' => 'Strony, gdzie przekroczono liczbę węzłów',
+'node-count-exceeded-warning' => 'Strona przekroczyła liczbę węzłów',
+'expansion-depth-exceeded-category' => 'Strony z przekroczoną głębokością rozbudowy',
+'expansion-depth-exceeded-warning' => 'Strona przekroczyła głębokość rozbudowy',
+'parser-unstrip-loop-warning' => 'Wykryto nieskończoną pętlę',
+'parser-unstrip-recursion-limit' => 'Przekroczono maksymalną głębokość zagnieżdżania ($1)',
 
 # "Undo" feature
 'undo-success' => 'Edycja może zostać wycofana. Porównaj ukazane poniżej różnice między wersjami, a następnie zapisz zmiany.',
@@ -1247,8 +1255,8 @@ Użycie linków nawigacyjnych kasuje wybór w kolumnie.',
 'mergelogpagetext' => 'Poniżej znajduje się lista ostatnich scaleń historii zmian stron.',
 
 # Diffs
-'history-title' => 'Historia edycji „$1”',
-'difference-title' => 'Różnica pomiędzy wersjami strony "$1"',
+'history-title' => '$1: Historia wersji',
+'difference-title' => '$1: Różnice pomiędzy wersjami',
 'difference-title-multipage' => 'Różnica pomiędzy stronami "$1" i "$2"',
 'difference-multipage' => '(Różnica między stronami)',
 'lineno' => 'Linia $1:',
@@ -1346,6 +1354,7 @@ Jednak informacje o treści {{GRAMMAR:D.lp|{{SITENAME}}}} mogą być w Google ni
 'prefs-beta' => 'Funkcje testowe',
 'prefs-datetime' => 'Data i czas',
 'prefs-labs' => 'Funkcje doświadczalne',
+'prefs-user-pages' => 'Strony użytkowników',
 'prefs-personal' => 'Dane użytkownika',
 'prefs-rc' => 'Ostatnie zmiany',
 'prefs-watchlist' => 'Obserwowane',
@@ -1608,7 +1617,7 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'nchanges' => '$1 {{PLURAL:$1|zmiana|zmiany|zmian}}',
 'recentchanges' => 'Ostatnie zmiany',
 'recentchanges-legend' => 'Opcje ostatnich zmian',
-'recentchangestext' => 'Ta strona przedstawia historię ostatnich zmian w tej wiki.',
+'recentchanges-summary' => 'Ta strona przedstawia historię ostatnich zmian w tej wiki.',
 'recentchanges-feed-description' => 'Obserwuj najświeższe zmiany w tej wiki.',
 'recentchanges-label-newpage' => 'W tej edycji utworzono nową stronę',
 'recentchanges-label-minor' => 'To jest drobna zmiana',
@@ -1820,13 +1829,14 @@ Jeśli problem będzie się powtarzał, skontaktuj się z [[Special:ListUsers/sy
 'backend-fail-closetemp' => 'Nie można zamknąć pliku tymczasowego.',
 'backend-fail-read' => 'Nie można odczytać pliku $1.',
 'backend-fail-create' => 'Nie można utworzyć pliku $1.',
-'backend-fail-maxsize' => 'Nie udało utworzyć pliku $1 ponieważ jest on większy niż {{PLURAL:$2|$2 bajt| $2 bajty| $2 bajtów}}.',
+'backend-fail-maxsize' => 'Nie udało zapisać pliku $1 ponieważ jest on większy niż {{PLURAL:$2|jeden bajt| $2 bajty| $2 bajtów}}.',
 'backend-fail-readonly' => 'Interfejs magazynowania "$1" jest obecnie tylko do odczytu. Powód: "$2"',
 'backend-fail-synced' => 'Plik "$1" jest w niespójnym stanie w ramach wewnętrznych funkcji magazynowania',
 'backend-fail-connect' => 'Nie można nawiązać połączenia do wewnętrznych funkcji magazynowania "$1".',
 'backend-fail-internal' => 'Wystąpił nieznany błąd w wewnętrznych funkcjach magazynowania "$1".',
 'backend-fail-contenttype' => 'Nie można określić typ zawartości pliku do przechowywania w "$1".',
 'backend-fail-batchsize' => 'Wewnętrzne funkcje magazynowania otrzymały $1 {{PLURAL:$1|operację|operacje|operacji}} na pliku; limit wynosi $2 {{PLURAL:$2| operacja|operacje|operacji}}.',
+'backend-fail-usable' => 'Nie można zapisać pliku $1 ze względu na niewystarczające uprawnienia lub brak katalogów/kontenerów.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Nie można połączyć się z bazą danych dziennika dla backendu magazynowania "$1".',
@@ -1949,6 +1959,10 @@ Dostępna jest też [[Special:WhatLinksHere/$2|pełna lista]].',
 Więcej informacji odnajdziesz na [$2 stronie opisu pliku].',
 'sharedupload-desc-here' => 'Ten plik znajduje się na $1 i może być używany w innych projektach.
 Poniżej znajdują się informacje ze [$2 strony opisu] tego pliku.',
+'sharedupload-desc-edit' => 'Plik ten pochodzi z $1 i może być wykorzystany w innych projektach.
+Być może zechcesz zmienić opis na tej [$2 stronie opisu pliku].',
+'sharedupload-desc-create' => 'Plik ten pochodzi z $1 i może być wykorzystany w innych projektach.
+Być może zechcesz zmienić opis na tej [$2 stronie opisu pliku].',
 'filepage-nofile' => 'Plik o tej nazwie nie istnieje.',
 'filepage-nofile-link' => 'Plik o tej nazwie nie istnieje, ale możesz go [$1 przesłać].',
 'uploadnewversion-linktext' => 'Załaduj nowszą wersję tego pliku',
@@ -3817,6 +3831,8 @@ Powinieneś otrzymać [{{SERVER}}{{SCRIPTPATH}}/COPYING kopię licencji GNU Gene
 'version-software' => 'Zainstalowane oprogramowanie',
 'version-software-product' => 'Nazwa',
 'version-software-version' => 'Wersja',
+'version-entrypoints' => 'Adres URL punktu wejścia',
+'version-entrypoints-header-entrypoint' => 'Punkt wejścia',
 'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
index 18a2222..1c0bc48 100644 (file)
@@ -424,6 +424,11 @@ Arcesta: $2',
 'ns-specialprotected' => 'As peulo nen modifichesse le pàgine dlë spassi nominal {{ns:special}}.',
 'titleprotected' => "La creassion ëd pàgine con ës tìtol-sì a l'é stàita proibìa da [[User:$1|$1]].
 Coma rason a l'ha butà: ''$2''.",
+'filereadonlyerror' => 'As peul pa modifichesse l\'archivi "$1" përchè ël depòsit d\'archivi "$2" a l\'é an sola letura.
+
+L\'aministrador ch\'a l\'ha blocalo a l\'ha lassà sta spiegassion: "$3".',
+'invalidtitle-knownnamespace' => 'Tìtol pa bon con spassi nominal "$2" e test "$3"',
+'invalidtitle-unknownnamespace' => 'Tìtol pa bon con spassi nominal sconossù nùmer $1 e test "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Configurassion falà: antivìrus nen conossù: ''$1''",
@@ -515,6 +520,7 @@ Da qualsëssìa ëd coste funsion a sarà mandà gnun messagi fin che chiel (chi
 'invalidemailaddress' => "Costa adrëssa ëd pòsta eletrònica-sì as peul nen pijesse përchè a l'ha na forma nen bon-a.
 Për piasì che a buta n'adrëssa scrita giusta ò che a lassa ël camp veujd.",
 'cannotchangeemail' => "J'adrësse ëd pòsta eletrònica dij cont a peulo pa esse modificà ansima a costa wiki.",
+'emaildisabled' => 'Sto sit-sì a peul pa mandé e-mail.',
 'accountcreated' => 'Cont creà',
 'accountcreatedtext' => "Ël cont Utent për $1 a l'é stàit creà.",
 'createaccount-title' => 'Creassion ëd cont për {{SITENAME}}',
@@ -707,6 +713,7 @@ o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}
 'note' => "'''NÒTA:'''",
 'previewnote' => "'''Che a ten-a present che costa-sì a l'é mach na preuva.'''
 Ij sò cambi a son anco' pa stàit salvà!",
+'continue-editing' => 'Continua a modifiché',
 'previewconflict' => "Costa preuva a-j mostra ël test dl'artìcol ambelessì dzora. Se a sërn dë salvelo, a l'é parèj che a lo s-ciairëran ëdcò tuti j'àutri Utent.",
 'session_fail_preview' => "'''Darmagi! I l'oma pa podù processé soa modìfica per via che a son përdusse për la stra ij dat ëd session.
 Për piasì che a preuva n'àutra vira. Se a dovèissa mai torna riveje sossì, che a preuva a seurte dal sistema e peuj torna a rintré.'''",
@@ -720,6 +727,7 @@ ant ël quàder ëd modìfica. La rason che a l'é nen stàit acetà a l'é për
 test ch'a-i é già. Sossì dle vire a riva quand un a deuvra un programa proxy ëd coj un pòch dla Bajòna.'''",
 'edit_form_incomplete' => "'''Quàich part dël formolari ëd modìfica a l'é pa rivà al sërvent; contròla doe vire che toe modìfiche a-i sio anco' e preuva torna.'''",
 'editing' => 'Modìfica ëd $1',
+'creating' => 'Creé $1',
 'editingsection' => 'I soma dapress a modifiché $1 (session)',
 'editingcomment' => 'I soma dapress a modifiché $1 (neuva session)',
 'editconflict' => "Conflit d'edission: $1",
@@ -784,6 +792,7 @@ A smija che a sia stàita scancelà.',
 'edit-no-change' => "Toa modìfica a l'é stàita ignorà, përchè a l'é pa stàit fàit gnun cambiament al test.",
 'edit-already-exists' => 'As peul nen creesse la pàgina.
 A esist già.',
+'defaultmessagetext' => "Test che a-i sarìa se a-i fusso pa 'd modìfiche",
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''Atension:''' Costa pàgina a l'ha tròpe ciamà costose a le fonsions ëd parser.
@@ -799,6 +808,12 @@ Costi paràmeter a son stàit lassà fòra.",
 'parser-template-loop-warning' => 'Trovà na liassa dlë stamp: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Passà ël lìmit ëd ricorsion dlë stamp ($1)',
 'language-converter-depth-warning' => 'Passà lìmit ëd profondità dël convertidor ëd lenghe ($1)',
+'node-count-exceeded-category' => "Pagine anté ël conteur ëd grop a l'é superà",
+'node-count-exceeded-warning' => "La pagina a l'ha superà ël conteur ëd grop",
+'expansion-depth-exceeded-category' => "Pagine anté la profondità d'espansion a l'é superà",
+'expansion-depth-exceeded-warning' => "La pagina a l'ha superà la profondità d'espansion",
+'parser-unstrip-loop-warning' => "Trovà un sicl d'unstrip",
+'parser-unstrip-recursion-limit' => "Superà ël lìmit ëd recursion d'unstrip: $1",
 
 # "Undo" feature
 'undo-success' => "Sta modìfica-sì as peul scancelesse. Për piasì, ch'a contròla ambelessì sota për esse sigur che a l'é pro lòn che a veul fé, e peuj ch'as salva lòn ch'a l'ha butà chiel/chila për finì dë scancelé la modìfica ch'a-i era.",
@@ -973,7 +988,9 @@ Ch'a varda mach che a-i ven-a nen fòra un rabel ant la continuità stòrica.",
 'mergelogpagetext' => "Ambelessì sota a-i é na lista dj'ùltime vire che la stòria ëd na pàgina a l'é stàita butà ansema a cola 'd n'àutra.",
 
 # Diffs
-'history-title' => 'Cronologìa dle modìfiche ëd "$1"',
+'history-title' => '$1: Cronologìa dle modìfiche',
+'difference-title' => '$1: Diferensa tra revision',
+'difference-title-multipage' => '$1 e $2: Diferensa tra pagine',
 'difference-multipage' => '(Diferense tra pàgine)',
 'lineno' => 'Riga $1:',
 'compareselectedversions' => 'Paragon-a le version selessionà',
@@ -1069,6 +1086,7 @@ Ch'a preuva a gionté dnans a soa arserca ël prefiss ''all:'' për sërché an
 'prefs-beta' => 'Caraterìstiche dla Beta',
 'prefs-datetime' => 'Data e ora',
 'prefs-labs' => 'Caraterìstiche dël laboratòri',
+'prefs-user-pages' => 'Pàgine utent',
 'prefs-personal' => "Profil dl'utent",
 'prefs-rc' => 'Ùltime modìfiche',
 'prefs-watchlist' => 'Ròba che as ten sot euj',
@@ -1334,7 +1352,7 @@ Costa anformassion a sarà pùblica.",
 'nchanges' => '$1 {{PLURAL:$1|modìfica|modìfiche}}',
 'recentchanges' => 'Ùltime modìfiche',
 'recentchanges-legend' => "Opsion dj'ùltime modìfiche",
-'recentchangestext' => 'An costa pàgina as ten cont dle modìfiche pì recente a la wiki.',
+'recentchanges-summary' => 'An costa pàgina as ten cont dle modìfiche pì recente a la wiki.',
 'recentchanges-feed-description' => 'Trassé le modìfiche dla wiki pì davzin-e ant ël temp an cost fluss.',
 'recentchanges-label-newpage' => "Sta modìfica-sì a l'ha creà na neuva pàgina",
 'recentchanges-label-minor' => "Costa a l'é na modìfica cita",
@@ -1544,12 +1562,18 @@ Se a-i riva sossì n'àotra vira, ch'as buta an comunicassion con n'[[Special:Li
 'backend-fail-closetemp' => "As peul pa saresse l'archivi temporani.",
 'backend-fail-read' => "As peul pa les-se l'archivi $1.",
 'backend-fail-create' => "As peul pa creesse l'archivi $1.",
+'backend-fail-maxsize' => "As peul pa scrivse l'archivi $1 përchè a l'é pi gròss che {{PLURAL:$2|un byte|$2 byte}}.",
 'backend-fail-readonly' => "Ël dispositiv ëd memòria «$1» a l'é al moment an sola letura. La rason dàita a l'era: «$2»",
 'backend-fail-synced' => "L'archivi «$1» a l'é ant në stat incoerent andrinta ai dispositiv ëd memòria intern",
 'backend-fail-connect' => 'Impossìbil coleghesse al dispositiv ëd memòria «$1».',
 'backend-fail-internal' => "N'eror pa conossù a l'é rivaje ant ël dispositiv ëd memòria «$1».",
 'backend-fail-contenttype' => "As peul pa determinesse la sòrt ëd contnù dl'archivi da memorisé a «$1».",
 'backend-fail-batchsize' => "Ël dispositiv ëd memòria a l'ha dàit un total ëd $1 {{PLURAL:$1|operassion|operassion}} d'archivi; ël lìmit a l'é $2 {{PLURAL:$1|operassion|operassion}}.",
+'backend-fail-usable' => "As peul pa scrivse l'archivi $1 a motiv ëd pa basta përmess  ëd directory/container mancant.",
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'As peul pa coleghesse al journal database për ël backend ëd memorisassion "$1".',
+'filejournal-fail-dbquery' => 'As peul pa mdifichesse ël journal database për ël backend ëd memorisassion "$1".',
 
 # Lock manager
 'lockmanager-notlocked' => "As peul pa dësblochesse «$1»; a l'é nen blocà.",
@@ -1667,6 +1691,10 @@ A l'é disponìbil na [[Special:WhatLinksHere/$2|lista completa]].",
 Për piasì, vëdde la [$2 pàgina ëd descrission ëd l'archivi] per d'àutre anformassion.",
 'sharedupload-desc-here' => "Cost archivi a riva da $1 e a peul esse dovrà da dj'àutri proget.
 La descrission an soa [$2 pàgina ëd dëscrission ëd l'archivi] a l'é smonùa sì-sota.",
+'sharedupload-desc-edit' => "St'archivi-sì a riva da $1 e a peul esse dovrà da autr proget. 
+A peul d'esse ch'it veule modifiché la descrission là an dzora soa [pagina ëd descrission dl'archivi $2]",
+'sharedupload-desc-create' => "St'archivi-sì a riva da $1 e a peul esse dovrà da autr proget. 
+A peul d'esse ch'it veule modifiché la descrission là an dzora soa [pagina ëd descrission dl'archivi $2]",
 'filepage-nofile' => 'A esist gnun archivi con ës nòm.',
 'filepage-nofile-link' => "N'archivi con sto nòm-sì a esist pa, ma a peul [$1 carielo].",
 'uploadnewversion-linktext' => "Carié na version neuva dë st'archivi-sì",
@@ -1878,6 +1906,12 @@ A peul arstrenze la visualisassion an selessionand la sòrt ëd registr, lë str
 'allpagesprefix' => "Smon-e le pàgine che a l'han ël prefiss:",
 'allpagesbadtitle' => "Ël tìtol che a l'ha daje a la pàgina a va nen bin, ò pura a l'ha andrinta un prefiss inter-lenga ò inter-wiki. A peul esse ëdcò che a l'abia andrinta dij caràter che as peulo nen dovresse ant ij tìtoj.",
 'allpages-bad-ns' => '{{SITENAME}} a l\'ha pa gnun ëspassi nominal "$1".',
+'allpages-hide-redirects' => 'Stërma le ridiression',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'I të stas vëddend na vërsion memorisà dë sta pagina, che a peul esse veja fin a $1.',
+'cachedspecial-viewing-cached-ts' => 'I të stas vëddend na vërsion memorisà dë sta pagina, che a peul esse nen completament atual.',
+'cachedspecial-refresh-now' => "Varda l'ùltima.",
 
 # Special:Categories
 'categories' => 'Categorìe',
@@ -2491,17 +2525,17 @@ Che as sërna, për piasì, un nòm diferent për st'artìcol.",
 'movelogpagetext' => 'Ambelessì sota a-i é na lista ëd tute le pàgine che a son ëstàite tramudà.',
 'movesubpage' => '{{PLURAL:$1|Sot-pàgina|Sot-pàgine}}',
 'movesubpagetext' => "Costa pàgina-sì a l'ha $1 {{PLURAL:$1|sot-pàgina|sot-pàgine}} smonùe sì-sota.",
-'movenosubpage' => "Sta pàgina-sì a l'ha pa ëd sotpàgine.",
+'movenosubpage' => "Sta pàgina-sì a l'ha gnun-e sot-pàgine.",
 'movereason' => 'Rason:',
-'revertmove' => "buta torna coma a l'era",
-'delete_and_move' => 'Scancela e tramuda',
-'delete_and_move_text' => '==A fa da manca dë scancelé==
-
-L\'artìcol ëd destinassion "[[:$1]]" a-i é già. Veul-lo scancelelo për avej ëd pòst për tramudé l\'àutr?',
-'delete_and_move_confirm' => 'É, scancela la pàgina',
-'delete_and_move_reason' => 'Scancelà për liberé ël pòst për tramudé "[[$1]]"',
-'selfmove' => "Tìtol neuv e tìtol vej a resto midem antra lor; as peul pa tramudesse na pàgina butand-la andoa che a l'é già.",
-'immobile-source-namespace' => 'As peul pa tramudé ëd pàgine ant ël namespace "$1"',
+'revertmove' => "buté torna coma a l'era",
+'delete_and_move' => 'Scancelé e tramudé',
+'delete_and_move_text' => "==A fa da manca dë scancelé==
+
+L'artìcol ëd destinassion «[[:$1]]» a-i é già. Veul-lo scancelelo për avèj ëd pòst për tramudé l'àutr?",
+'delete_and_move_confirm' => 'É, scancelé la pàgina',
+'delete_and_move_reason' => 'Scancelà për liberé ël pòst për tramudé «[[$1]]»',
+'selfmove' => "Tìtol neuv e tìtol vej a resto midem antra 'd lor; as peul pa tramudesse na pàgina butand-la andoa che a l'é già.",
+'immobile-source-namespace' => 'A peul pa tramudé le pàgine ant lë spassi nominal «$1»',
 'immobile-target-namespace' => 'As peul pa tramudé ëd pàgine ant ël namespace "$1"',
 'immobile-target-namespace-iw' => "Un colegament interwiki a l'é pa na destinassion vàlida për tramudé na pàgina.",
 'immobile-source-page' => 'Sta pàgina-sì as peul pa tramudesse.',
@@ -3470,6 +3504,9 @@ A dovrìa avèj arseivù [{{SERVER}}{{SCRIPTPATH}}/COPYING na còpia dla Licensa
 'version-software' => 'Programa anstalà',
 'version-software-product' => 'Prodot',
 'version-software-version' => 'Version',
+'version-entrypoints' => "Anliure ëd pont d'intrà",
+'version-entrypoints-header-entrypoint' => "Pont d'intrà",
+'version-entrypoints-header-url' => "Adrëssa an sl'aragnà",
 
 # Special:FilePath
 'filepath' => "Përcors d'archivi",
@@ -3658,4 +3695,15 @@ Dësnò, a peule dovré ël formlari semplificà sì-sota. Sò coment a sarà gi
 'api-error-uploaddisabled' => "Ël cariagi a l'é disabilità su sta wiki.",
 'api-error-verification-error' => "Cost archivi a peul esse danegià, o avèj l'estension sbalià.",
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|second|second}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minuta|minute}}',
+'duration-hours' => '$1 {{PLURAL:$1|ora|ore}}',
+'duration-days' => '$1 {{PLURAL:$1|di|di}}',
+'duration-weeks' => '$1 {{PLURAL:$1|sman-a|sman-e}}',
+'duration-years' => '$1 {{PLURAL:$1|ann|agn}}',
+'duration-decades' => "$1 {{PLURAL:$1|desen-a d'agn|desen-e d'agn}}",
+'duration-centuries' => '$1 {{PLURAL:$1|sécol|sécoj}}',
+'duration-millennia' => '$1 {{PLURAL:$1|milenari|milenari}}',
+
 );
index d1e089b..9212034 100644 (file)
@@ -1316,7 +1316,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|change|تبدیلیاں}}',
 'recentchanges' => 'نویاں تبدیلیاں',
 'recentchanges-legend' => 'نویاں تبدیلیاں دیاں راواں',
-'recentchangestext' => 'ایس وکی تے نیڑے نیڑے ہون والیاں تبدیلیاں ایس صفے تے دسو۔',
+'recentchanges-summary' => 'ایس وکی تے نیڑے نیڑے ہون والیاں تبدیلیاں ایس صفے تے دسو۔',
 'recentchanges-feed-description' => 'اس فیڈ وچ وکی تے ہوئیاں نویاں تبدیلیاں نو ویکھو۔',
 'recentchanges-label-newpage' => 'ایس تبدیلی نے نواں صفہ بنایا اے۔',
 'recentchanges-label-minor' => 'اے اک چھوٹی تبدیلی اے۔',
@@ -2210,7 +2210,7 @@ $2 نے آخری ریوین تک واپس کیتا۔',
 'undelete-error-short' => 'فاغل واپس کرن چ غلطی: $1',
 'undelete-error-long' => 'فائل واپس کرن  لگیاں غلطیاں ہوئیاں:
 $1',
-'undelete-show-file-confirm' => 'تساں نوں کیا پک اے جے تسیں فائل "<نوکی>$1</نوکی>" دی مٹائی ریوین  $2 توں $3 تک ویکھنا چاندے او؟',
+'undelete-show-file-confirm' => 'تساں نوں کیا پک اے جے تسیں فائل "<nowiki>$1</nowiki>" دی مٹائی ریوین  $2 توں $3 تک ویکھنا چاندے او؟',
 'undelete-show-file-submit' => 'ہاں جی',
 
 # Namespace form on various pages
@@ -2577,7 +2577,7 @@ $1',
 'import-revision-count' => '$1 {{PLURAL:$1|ریوین}}',
 'importnopages' => 'لانے آسطے کوئی صفحہ نئیں۔',
 'imported-log-entries' => '{{PLURAL:$1|لاگ انٹریلاگ انٹریاں}}!!لیاندی گئی $1 {{PLURAL:$1|لاگ انٹری}}.',
-'importfailed' => 'لیانا فیل: <نوکی>$1</نوکی>',
+'importfailed' => 'لیانا فیل: <nowiki>$1</nowiki>',
 'importunknownsource' => 'انجان لیان سورس ٹائپ',
 'importcantopen' => 'لیاندی گئی فائل نئیں کھولی جاسکی',
 'importbadinterwiki' => 'پیڑا انٹروکی لنک',
index d6bcd2c..a62df39 100644 (file)
@@ -1092,7 +1092,7 @@ Tū mazzi dīgi etrīnktun dātun kitēimans drāugautwei sen tin pra tērpautaj
 'nchanges' => '$1 {{PLURAL:$1|kitawīdinsna|kitawīdinsnas}}',
 'recentchanges' => 'Panzdaumas kitawīdinsnas',
 'recentchanges-legend' => 'Panzdauman kitawīdinsnan mazīngiskwas',
-'recentchangestext' => 'Šin pāusan waidinna listin stēisan panzdauman kitawīdinsnan en šissei wiki.',
+'recentchanges-summary' => 'Šin pāusan waidinna listin stēisan panzdauman kitawīdinsnan en šissei wiki.',
 'recentchanges-feed-description' => 'Nadirēis ukanāunaisins kitawīdisnans en šissei wiki.',
 'recentchanges-label-newpage' => 'Šis redigīsenis ast teīkuns nāunan pāusan',
 'recentchanges-label-minor' => 'Sta ast malks redigīsenis',
index d271266..79f113b 100644 (file)
@@ -1171,7 +1171,7 @@ $1',
 'nchanges' => '$1 {{PLURAL:$1|بدلون|بدلونونه}}',
 'recentchanges' => 'وروستي بدلونونه',
 'recentchanges-legend' => 'د ورستي بدلونو خوښنې',
-'recentchangestext' => 'په همدې مخ باندې د ويکي ترټولو تازه وروستي بدلونونه وڅارۍ.',
+'recentchanges-summary' => 'په همدې مخ باندې د ويکي ترټولو تازه وروستي بدلونونه وڅارۍ.',
 'recentchanges-feed-description' => 'همدلته د ويکي ترټولو تازه وروستي بدلونونه وڅارۍ او وګورۍ چې څه پېښ شوي.',
 'recentchanges-label-newpage' => 'دغه سمون يو نوی مخ جوړ کړی',
 'recentchanges-label-minor' => 'دا يوه وړه سمونه ده',
index 78004c7..9eb32ec 100644 (file)
@@ -1645,7 +1645,7 @@ Esta informação será pública.',
 'nchanges' => '$1 {{PLURAL:$1|alteração|alterações}}',
 'recentchanges' => 'Mudanças recentes',
 'recentchanges-legend' => 'Opções das mudanças recentes',
-'recentchangestext' => 'Acompanhe nesta página as mudanças mais recentes da wiki.',
+'recentchanges-summary' => 'Acompanhe nesta página as mudanças mais recentes da wiki.',
 'recentchanges-feed-description' => "Acompanhe neste ''feed'' as mudanças mais recentes da wiki.",
 'recentchanges-label-newpage' => 'Esta edição criou uma página nova',
 'recentchanges-label-minor' => 'Esta é uma edição menor',
@@ -1929,7 +1929,6 @@ Para optimizar a segurança, o img_auth.php está impossibilitado de executar.',
 'http-curl-error' => 'Ocorreu um erro ao aceder à URL: $1',
 'http-host-unreachable' => 'Não foi possível aceder à URL',
 'http-bad-status' => 'Ocorreu um problema durante o pedido HTTP: $1 $2',
-'http-truncated-body' => 'O corpo da solicitação foi recebido apenas parcialmente.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Não foi possível aceder à URL',
@@ -2703,7 +2702,7 @@ Consulte a [[Special:BlockList|lista de bloqueios]] para rever os bloqueios.',
 O registo de bloqueios é fornecido abaixo para referência:',
 'blocklog-showsuppresslog' => 'Este utilizador foi bloqueado e ocultado anteriomente.
 O registo de supressão é fornecido abaixo para referência:',
-'blocklogentry' => 'bloqueou "[[$1]]" $3. O bloqueio expira em $2.',
+'blocklogentry' => 'bloqueou "[[$1]]" por $2. $3',
 'reblock-logentry' => 'modificou parâmetros de bloqueio de [[$1]] com expiração em $2. $3',
 'blocklogtext' => 'Este é um registo de ações de bloqueio e desbloqueio.
 Endereços IP sujeitos a bloqueio automático não estão listados.
index 2917cf7..bb159c5 100644 (file)
@@ -104,6 +104,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'Todas_as_mensagens', 'Todas_mensagens' ),
        'Allpages'                  => array( 'Todas_as_páginas', 'Todos_os_artigos', 'Todas_páginas', 'Todos_artigos' ),
        'Ancientpages'              => array( 'Páginas_inativas', 'Artigos_inativos' ),
+       'Badtitle'                  => array( 'Título_inválido' ),
        'Blankpage'                 => array( 'Página_em_branco' ),
        'Block'                     => array( 'Bloquear', 'Bloquear_IP', 'Bloquear_utilizador', 'Bloquear_usuário' ),
        'Blockme'                   => array( 'Bloquear-me', 'Auto-bloqueio' ),
@@ -111,6 +112,7 @@ $specialPageAliases = array(
        'BrokenRedirects'           => array( 'Redirecionamentos_quebrados' ),
        'Categories'                => array( 'Categorias' ),
        'ChangePassword'            => array( 'Trocar_senha', 'Repor_senha' ),
+       'ComparePages'              => array( 'Comparar_páginas' ),
        'Confirmemail'              => array( 'Confirmar_e-mail', 'Confirmar_email' ),
        'Contributions'             => array( 'Contribuições' ),
        'CreateAccount'             => array( 'Criar_conta' ),
@@ -118,6 +120,7 @@ $specialPageAliases = array(
        'DeletedContributions'      => array( 'Contribuições_eliminadas', 'Edições_eliminadas' ),
        'Disambiguations'           => array( 'Páginas_de_desambiguação', 'Desambiguar', 'Desambiguações' ),
        'DoubleRedirects'           => array( 'Redirecionamentos_duplos' ),
+       'EditWatchlist'             => array( 'Editar_lista_de_páginas_vigiadas' ),
        'Emailuser'                 => array( 'Contatar_usuário', 'Contactar_usuário', 'Contactar_utilizador' ),
        'Export'                    => array( 'Exportar' ),
        'Fewestrevisions'           => array( 'Páginas_com_menos_edições', 'Artigos_com_menos_edições', 'Artigos_menos_editados' ),
@@ -1616,7 +1619,7 @@ Caso decida fornecê-lo, este será utilizado para dar-lhe crédito pelo seu tra
 'nchanges' => '$1 {{PLURAL:$1|alteração|alterações}}',
 'recentchanges' => 'Mudanças recentes',
 'recentchanges-legend' => 'Opções das mudanças recentes',
-'recentchangestext' => 'Acompanhe, a partir desta página, as alterações recentes no wiki {{SITENAME}}.',
+'recentchanges-summary' => 'Veja as mais novas mudanças na {{SITENAME}} nesta página.',
 'recentchanges-feed-description' => 'Acompanhe neste feed as mudanças mais recentes do wiki.',
 'recentchanges-label-newpage' => 'Esta edição criou uma nova página',
 'recentchanges-label-minor' => 'Esta é uma edição menor',
index 8cf128b..521b3a6 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author *Surak*
+ * @author Abanima
  * @author Ahonc
  * @author Aleator
  * @author AlexSm
  * @author Sherbrooke
  * @author Shirayuki
  * @author Shushruth
+ * @author Siddhartha Ghai
  * @author Siebrand
  * @author Singularity
  * @author Sionnach
@@ -1392,6 +1394,7 @@ This is a search result (and I guess search engine) dependent messages. I do not
 'prefs-beta' => "Header of a subsection at [[Special:Preferences]], tab ''{{int:prefs-editing}}'', listing features that are in beta but mostly suitable for general use",
 'prefs-datetime' => '{{Identical|Date}}',
 'prefs-labs' => "Header of a subsection at [[Special:Preferences]], tab ''{{int:prefs-editing}}'', listing features that are experimental",
+'prefs-user-pages' => "Header of a subsection at [[Special:Preferences]], tab ''{{int:prefs-misc}}'', listing features that are related to user pages",
 'prefs-personal' => 'Title of a tab in [[Special:Preferences]].',
 'prefs-rc' => 'Used in user preferences.
 
@@ -1770,7 +1773,7 @@ This action allows editing of all of the "user rights", not just the rights of t
 
 {{Identical|Recent changes}}',
 'recentchanges-legend' => 'Legend of the fieldset of [[Special:RecentChanges]]',
-'recentchangestext' => 'Text in recent changes',
+'recentchanges-summary' => 'Summary of [[Special:RecentChanges]].',
 'recentchanges-label-newpage' => 'Tooltip for {{msg-mw|newpageletter}}',
 'recentchanges-label-minor' => 'Tooltip for {{msg-mw|newpageletter}}',
 'recentchanges-label-bot' => 'Tooltip for {{msg-mw|boteditletter}}',
@@ -1966,6 +1969,8 @@ Extensions making use of it:
 Parameters:
 * $1 is the number of operations attempted at once in this case.
 * $2 is the maximum number of operations that can be attempted at once.',
+'backend-fail-usable' => 'Parameters:
+* $1 is the file name, including the path, formatted for the storage backend used',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Parameters:
@@ -2032,7 +2037,6 @@ Siebrand think this has to do with allowing MediaWiki to fetch remote URLs, and
 
 If \'scheme\' is difficult to translate, then you could use \'prefix\' instead.',
 'http-bad-status' => '$1 is an HTTP error code (e.g. 404), $2 is the HTTP error message (e.g. File Not Found)',
-'http-truncated-body' => 'This is a standard HTTP error message. → Seems the connection closed prematurely. The HTTP response contained a content-length greater than the received body.',
 
 'license' => 'This appears in the upload form for the license drop-down. The header in the file description page is now at {{msg-mw|License-header}}.',
 'nolicense' => '{{Identical|None selected}}',
@@ -2343,7 +2347,7 @@ $1 is a page title",
 'nopagetitle' => 'Used as title of [[Special:MovePage]], when the oldtitle does not exist.
 
 The text is {{msg-mw|nopagetext}}.',
-'nopagetext' => 'Used as text of [[Special:MovePage]], when the oldtitle does not exist.
+'nopagetext' => 'Used as text on special pages like [[Special:MovePage]] (when the oldtitle does not exist) or [[Special:PermaLink]].
 
 The title is {{msg-mw|nopagetitle}}.',
 'pager-newer-n' => "This is part of the navigation message on the top and bottom of Special pages which are lists of things in date order, e.g. the User's contributions page. It is passed as the second argument of {{msg-mw|Viewprevnext}}. $1 is the number of items shown per page.",
@@ -3048,6 +3052,7 @@ See also {{msg-mw|Movepagetext-noredirectfixer|notext=1}}',
 'movetalk' => 'The text of the checkbox to watch the associated talk page to the page you are moving. This only appears when the talk page is not empty.',
 'move-subpages' => 'The text of an option on the special page [[Special:MovePage|MovePage]]. If this option is ticked, any subpages will be moved with the main page to a new title.',
 'move-talk-subpages' => 'The text of an option on the special page [[Special:MovePage|MovePage]]. If this option is ticked, any talk subpages will be moved with the talk page to a new title.',
+'movepage-max-pages' => 'PROBABLY (A GUESS): when moving a page, you can select an option of moving its subpages, but there is a maximum that can be moved automatically.',
 'movelogpage' => 'Title of [[Special:Log/move]]. Used as heading on that page, and in the dropdown menu on log pages.',
 'movelogpagetext' => "Text on the special page 'Move log'.",
 'movesubpage' => "This is a section header on [[Special:MovePage]], below is a list of subpages.
@@ -3058,6 +3063,7 @@ Parameters:
 
 {{Identical|Reason}}',
 'revertmove' => '{{Identical|Revert}}',
+'delete_and_move' => 'Button text on the move page when the target page already exists.',
 'delete_and_move_text' => 'Used when moving a page, but the destination page already exists and needs deletion. This message is to confirm that you really want to delete the page. See also {{msg|delete and move confirm}}.',
 'delete_and_move_confirm' => 'Used when moving a page, but the destination page already exists and needs deletion. This message is for a checkbox to confirm that you really want to delete the page. See also {{msg|delete and move text}}.',
 'delete_and_move_reason' => 'Shown as reason in content language in the deletion log. Parameter:
@@ -4021,6 +4027,7 @@ CW is an abbreviation for clockwise.',
 'exif-contrast-2' => '{{Identical|Hard}}',
 
 'exif-saturation-0' => '{{Identical|Normal}}',
+'exif-saturation-2' => 'Color saturation in picture EXIF data',
 
 'exif-sharpness-0' => '{{Identical|Normal}}',
 'exif-sharpness-1' => '{{Identical|Soft}}',
index 8c9cc20..d525e28 100644 (file)
@@ -138,24 +138,24 @@ $magicWords = array(
        'noeditsection'           => array( '0', '__AMARAKITAHUKCHAYCHU__', '__NOEDITARSECCIÓN__', '__NOEDITARSECCION__', '__NOEDITSECTION__' ),
        'noheader'                => array( '0', '__UMANNAQ__', '__NOTÍTULO__', '__NOTITULO__', '__NOHEADER__' ),
        'currentmonth'            => array( '1', 'KUNANKILLA', 'MESACTUAL', 'MES_ACTUAL', 'MESACTUAL2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
-       'currentmonthname'        => array( '1', 'KUNANKILLASUTI', 'NOMBREMESACTUAL', 'NOMBRE_MES_ACTUAL', 'CURRENTMONTHNAME' ),
-       'currentmonthnamegen'     => array( '1', 'KUNANKILLASUTIP', 'GENERADORNOMBREMESACTUAL', 'CURRENTMONTHNAMEGEN' ),
-       'currentmonthabbrev'      => array( '1', 'KUNANKILLAPISI', 'ABREVIACIONNOMBREMESACTUAL', 'ABREVIACIÓNNOMBREMESACTUAL', 'CURRENTMONTHABBREV' ),
+       'currentmonthname'        => array( '1', 'KUNANKILLASUTI', 'NOMBREMESACTUAL', 'NOMBRE_MES_ACTUAL', 'MESACTUALCOMPLETO', 'CURRENTMONTHNAME' ),
+       'currentmonthnamegen'     => array( '1', 'KUNANKILLASUTIP', 'GENERADORNOMBREMESACTUAL', 'MESACTUALGENITIVO', 'CURRENTMONTHNAMEGEN' ),
+       'currentmonthabbrev'      => array( '1', 'KUNANKILLAPISI', 'ABREVIACIONNOMBREMESACTUAL', 'ABREVIACIÓNNOMBREMESACTUAL', 'MESACTUALABREVIADO', 'CURRENTMONTHABBREV' ),
        'currentday'              => array( '1', 'KUNANPUNCHAW', 'DÍAACTUAL', 'DIAACTUAL', 'DÍA_ACTUAL', 'DIA_ACTUAL', 'CURRENTDAY' ),
        'currentday2'             => array( '1', 'KUNANPUNCHAW2', 'DÍAACTUAL2', 'DIAACTUAL2', 'DÍA_ACTUAL2', 'DIA_ACTUAL2', 'CURRENTDAY2' ),
        'currentdayname'          => array( '1', 'KUNANPUNCHAWSUTI', 'NOMBREDÍAACTUAL', 'NOMBREDIAACTUAL', 'CURRENTDAYNAME' ),
        'currentyear'             => array( '1', 'KUNANWATA', 'AÑOACTUAL', 'AÑO_ACTUAL', 'CURRENTYEAR' ),
-       'currenttime'             => array( '1', 'KUNANPACHA', 'HORAACTUAL', 'HORA_ACTUAL', 'CURRENTTIME' ),
+       'currenttime'             => array( '1', 'KUNANPACHA', 'HORAACTUAL', 'HORA_ACTUAL', 'HORA_MINUTOS_ACTUAL', 'HORAMINUTOSACTUAL', 'TIEMPOACTUAL', 'CURRENTTIME' ),
        'currenthour'             => array( '1', 'KUNANURA', 'HORA_ACTUAL', 'HORAACTUAL', 'HORA_MINUTOS_ACTUAL', 'HORAMINUTOSACTUAL', 'CURRENTHOUR' ),
-       'localmonth'              => array( '1', 'KAYPIKILLA', 'MESLOCAL', 'LOCALMONTH', 'LOCALMONTH2' ),
-       'localmonthname'          => array( '1', 'KAYPIKILLASUTI', 'NOMBREMESLOCAL', 'LOCALMONTHNAME' ),
-       'localmonthnamegen'       => array( '1', 'KAYPIKILLASUTIP', 'GENERADORNOMBREMESLOCAL', 'LOCALMONTHNAMEGEN' ),
-       'localmonthabbrev'        => array( '1', 'KAYPIKILLAPISI', 'ABREVIACIONMESLOCAL', 'LOCALMONTHABBREV' ),
+       'localmonth'              => array( '1', 'KAYPIKILLA', 'MESLOCAL', 'MESLOCAL2', 'LOCALMONTH', 'LOCALMONTH2' ),
+       'localmonthname'          => array( '1', 'KAYPIKILLASUTI', 'NOMBREMESLOCAL', 'MESLOCALCOMPLETO', 'LOCALMONTHNAME' ),
+       'localmonthnamegen'       => array( '1', 'KAYPIKILLASUTIP', 'GENERADORNOMBREMESLOCAL', 'MESLOCALGENITIVO', 'LOCALMONTHNAMEGEN' ),
+       'localmonthabbrev'        => array( '1', 'KAYPIKILLAPISI', 'ABREVIACIONMESLOCAL', 'MESLOCALABREVIADO', 'LOCALMONTHABBREV' ),
        'localday'                => array( '1', 'KAYPIPUNCHAW', 'DÍALOCAL', 'DIALOCAL', 'LOCALDAY' ),
        'localday2'               => array( '1', 'KAYPIPUNCHAW2', 'DIALOCAL2', 'DÍALOCAL2', 'LOCALDAY2' ),
        'localdayname'            => array( '1', 'KAYPIPUNCHAWSUTI', 'NOMBREDIALOCAL', 'NOMBREDÍALOCAL', 'LOCALDAYNAME' ),
        'localyear'               => array( '1', 'KAYPIWATA', 'AÑOLOCAL', 'LOCALYEAR' ),
-       'localtime'               => array( '1', 'KAYPIPACHA', 'HORALOCAL', 'LOCALTIME' ),
+       'localtime'               => array( '1', 'KAYPIPACHA', 'HORALOCAL', 'HORAMINUTOSLOCAL', 'TIEMPOLOCAL', 'LOCALTIME' ),
        'localhour'               => array( '1', 'KAYPIURA', 'HORALOCAL', 'HORAMINUTOSLOCAL', 'LOCALHOUR' ),
        'numberofpages'           => array( '1', 'HAYKAPANQA', 'NÚMERODEPÁGINAS', 'NUMERODEPAGINAS', 'NUMBEROFPAGES' ),
        'numberofarticles'        => array( '1', 'HAYKAQILLQA', 'NÚMERODEARTÍCULOS', 'NUMERODEARTICULOS', 'NUMBEROFARTICLES' ),
@@ -172,7 +172,7 @@ $magicWords = array(
        'talkspacee'              => array( '1', 'RIMANAKUYKITIE', 'RIMAYKITIE', 'ESPACIODEDISCUSIONC', 'TALKSPACEE' ),
        'subjectspace'            => array( '1', 'QILLQAKITI', 'ESPACIODEASUNTO', 'ESPACIODETEMA', 'ESPACIODEARTÍCULO', 'ESPACIODEARTICULO', 'SUBJECTSPACE', 'ARTICLESPACE' ),
        'subjectspacee'           => array( '1', 'QILLQAKITIE', 'ESPACIODETEMAC', 'ESPACIODEASUNTOC', 'ESPACIODEARTICULOC', 'ESPACIODEARTÍCULOC', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
-       'fullpagename'            => array( '1', 'HUNTAPANQASUTI', 'NOMBREDEPÁGINACOMPLETA', 'NOMBREDEPAGINACOMPLETA', 'NOMBREDEPÁGINAENTERA', 'NOMBREDEPAGINAENTERA', 'FULLPAGENAME' ),
+       'fullpagename'            => array( '1', 'HUNTAPANQASUTI', 'NOMBREDEPÁGINACOMPLETA', 'NOMBREDEPAGINACOMPLETA', 'NOMBREDEPÁGINAENTERA', 'NOMBREDEPAGINAENTERA', 'NOMBRECOMPLETODEPÁGINA', 'NOMBRECOMPLETODEPAGINA', 'FULLPAGENAME' ),
        'fullpagenamee'           => array( '1', 'HUNTAPANQASUTIE', 'NOMBRECOMPLETODEPAGINAC', 'NOMBRECOMPLETODEPÁGINAC', 'FULLPAGENAMEE' ),
        'subpagename'             => array( '1', 'URINPANQASUTI', 'NOMBREDESUBPAGINA', 'NOMBREDESUBPÁGINA', 'SUBPAGENAME' ),
        'subpagenamee'            => array( '1', 'URINPANQASUTIE', 'NOMBREDESUBPAGINAC', 'NOMBREDESUBPÁGINAC', 'SUBPAGENAMEE' ),
@@ -193,7 +193,7 @@ $magicWords = array(
        'img_center'              => array( '1', 'chawpi', 'centro', 'centrado', 'centrada', 'centrar', 'center', 'centre' ),
        'img_framed'              => array( '1', 'inchuyuq', 'inchu', 'marco', 'enmarcado', 'enmarcada', 'framed', 'enframed', 'frame' ),
        'img_frameless'           => array( '1', 'inchunnaq', 'sinmarco', 'sin_embarcar', 'sinenmarcar', 'sin_enmarcar', 'frameless' ),
-       'img_page'                => array( '1', 'panqa=$1', 'pagina=$1', 'página=$1', 'pagina $1', 'página $1', 'page=$1', 'page $1' ),
+       'img_page'                => array( '1', 'panqa=$1', 'pagina=$1', 'página=$1', 'pagina $1', 'página $1', 'pagina_$1', 'page=$1', 'page $1' ),
        'img_upright'             => array( '1', 'sayaq', 'sayaq=$1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'              => array( '1', 'saywa', 'borde', 'border' ),
        'img_baseline'            => array( '1', 'tiksisiqi', 'baseline' ),
@@ -207,7 +207,7 @@ $magicWords = array(
        'img_link'                => array( '1', 'tinki=$1', 'vínculo=$1', 'vinculo=$1', 'enlace=$1', 'link=$1' ),
        'img_alt'                 => array( '1', 'wak=$1', 'alt=$1' ),
        'int'                     => array( '0', 'WILLAY:', 'INT:' ),
-       'sitename'                => array( '1', 'TIYAYSUTI', 'NOMBREDESITIO', 'SITENAME' ),
+       'sitename'                => array( '1', 'TIYAYSUTI', 'NOMBREDESITIO', 'NOMBREDELSITIO', 'SITENAME' ),
        'ns'                      => array( '0', 'SKITI:', 'EN:', 'NS:' ),
        'localurl'                => array( '0', 'KAYLLAURL:', 'URLLOCAL', 'LOCALURL:' ),
        'localurle'               => array( '0', 'KAYLLAURLE:', 'URLLOCALC:', 'LOCALURLE:' ),
@@ -526,7 +526,7 @@ $1",
 'versionrequired' => "$1 nisqa MediaWiki llamk'apusqatam muchunki kay p'anqata llamk'achinaykipaq",
 'versionrequiredtext' => "$1 nisqa MediaWiki llamk'apusqatam muchunki kay p'anqata llamk'achinaykipaq. Astawan willasunaykipaqqa, [[Special:Version]] nisqapi qhaway",
 
-'ok' => 'OK',
+'ok' => 'Arí niy',
 'retrievedfrom' => '"$1" p\'anqamanta chaskisqa (Qhichwa / Quechua)',
 'youhavenewmessages' => '$1 qhawanayki kachkan ($2).',
 'newmessageslink' => 'Musuq willaymi',
@@ -650,6 +650,8 @@ $2",
 'filereadonlyerror' => 'Manam atinichu "$1" sutiyuq willañiqita hukchayta, "$2" sutiyuq willañiqi churamuna ñawirillanapaq kachkaptinmi.
 
 Amachaq kamachiqqa kayrayku amachani nispa nirqanmi: "$3".',
+'invalidtitle-knownnamespace' => '"$2" sutisuyu, "$3" qillqasqayuq mana allin kaq qillqa suti',
+'invalidtitle-unknownnamespace' => 'Mana riqsisqa $1 kaq sutisuyu yupay, "$2" qillqasqayuq mana allin kaq qillqa suti',
 
 # Virus scanner
 'virus-badscanner' => "Manam allintachu churapusqa: mana riqsisqa añaw maskaq: ''$1''",
@@ -1012,6 +1014,8 @@ Chay niykunaqa manam chaninchasqachu.",
 'node-count-exceeded-warning' => "P'anqaqa watasqakunata nisyu yupayniyuqmi",
 'expansion-depth-exceeded-category' => "Nisyu mast'ariy ukhu kaqniyuq p'anqakuna",
 'expansion-depth-exceeded-warning' => "P'anqaqa nisyu mast'ariy ukhu kaqniyuqmi",
+'parser-unstrip-loop-warning' => 'Muyupayaq siqum tarisqa',
+'parser-unstrip-recursion-limit' => 'Nisyu kuti muyupayay siqum ($1)',
 
 # "Undo" feature
 'undo-success' => 'Rurasqata kutichiyta atinkim. Manaraq kutichispaykiqa, kay qatiq wakichayta qhawariy rikunaykipaq chiqapta munasqaykichu manallachu, chaymantataq waqaychay kutichinapaq.',
@@ -1187,6 +1191,8 @@ Takyachikuy kay hukchayqa allin wiñay kawsay ñiqita ama waqllichunchu chaylla.
 
 # Diffs
 'history-title' => '"$1" p\'anqata hukchasqakunap wiñay kawsaynin',
+'difference-title' => '$1: Musuqchasqapura wakin kaynin',
+'difference-title-multipage' => '$1, $2: Willañiqipura wakin kaynin',
 'difference-multipage' => "(P'anqakunaqa manam kaqllachu)",
 'lineno' => "Siq'i $1:",
 'compareselectedversions' => "Akllasqa llamk'apusqakunata wakichay",
@@ -1541,7 +1547,7 @@ $1 {{PLURAL:$1|sanampamanta|sanampakunamanta}} aswan pisi kananmi.',
 'nchanges' => '$1 {{PLURAL:$1|hukchasqa|hukchasqakuna}}',
 'recentchanges' => 'Ñaqha hukchasqa',
 'recentchanges-legend' => 'Ñaqha hukchasqapaq allinkachinakuna',
-'recentchangestext' => "Kay p'anqapiqa aswan qhipaq ñaqha hukchasqakunam.",
+'recentchanges-summary' => "Kay p'anqapiqa aswan qhipaq ñaqha hukchasqakunam.",
 'recentchanges-feed-description' => 'Kay mikhuchinapi wikipi qhipaq ñaqha hukchasqakunata qatiy.',
 'recentchanges-label-newpage' => "Kayta llamk'apuptiykim musuq p'anqam tukukurqun",
 'recentchanges-label-minor' => "Kayqa aslla llamk'apuymi",
@@ -1721,14 +1727,15 @@ $1',
 'backend-fail-writetemp' => "Manam atinichu mit'alla willañiqiman qillqayta.",
 'backend-fail-closetemp' => "Manam atinichu mit'alla willañiqita wichq'ayta.",
 'backend-fail-read' => 'Manam atinichu $1 sutiyuq willañiqita ñawiriyta.',
-'backend-fail-create' => 'Manam atinichu $1 sutiyuq willañiqita kamariyta.',
-'backend-fail-maxsize' => 'Manam atinichu $1 sutiyuq willañiqita kamariyta, {{PLURAL:$2|huk bytemanta|$2 bytemanta}} aswan hatun kaptinmi.',
+'backend-fail-create' => 'Manam atinichu $1 sutiyuq willañiqita qillqayta.',
+'backend-fail-maxsize' => 'Manam atinichu $1 sutiyuq willañiqita qillqayta, {{PLURAL:$2|huk bytemanta|$2 bytemanta}} aswan hatun kaptinmi.',
 'backend-fail-readonly' => '"$1" sutiyuq willañiqi hallch\'ana sirwiqqa ñawirinallapaqmi kachkan, kayrayku: "$2"',
 'backend-fail-synced' => '"$1" sutiyuq willañiqiqa manam sinchichu kachkan ukhupi willañiqi hallch\'ana sirwiqkunapi',
 'backend-fail-connect' => 'Manam atinichu "$1" sutiyuq willañiqi hallch\'ana sirwiqwan t\'inkinakuyta.',
 'backend-fail-internal' => '"$1" sutiyuq willañiqi hallch\'ana sirwiqpi mana riqsisqa pantasqam tukurqan.',
 'backend-fail-contenttype' => 'Manam atinichu "$1" nisqapi hallch\'ana willañiqip samiqninpa layanta yuqanchayta.',
 'backend-fail-batchsize' => "Willañiqi hallch'ana sirwiqmanqa $1 willañiqi {{PLURAL:$1|ruranayuq|ruranayuq}} tawqam qusqa; saywataq $2 {{PLURAL:$1|ruranam|ruranam}}.",
+'backend-fail-usable' => 'Manam atinichu $1 sutiyuq willañiqita qillqayta, mana aypalla saqillaykuna icha mana churanakuna/qullqakuna kaptinmi.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => "Manam atinichu \"\$1\" sutiyuq willañiqi hallch'ana sirwiqpaq p'unchawnintin hallch'awan t'inkiyta.",
index b45718d..313cde1 100644 (file)
@@ -535,7 +535,7 @@ Shuk rurakkunaka kikinpa e-chaski ''dirección''ta mana yachankachu.",
 'nchanges' => '$1 {{PLURAL:$1|killkay|killkaykuna}}',
 'recentchanges' => 'Mushuk killkaykuna',
 'recentchanges-legend' => 'Mushuk killkaykunamanta akllaykuna',
-'recentchangestext' => 'Kay pankapi tukuy mushuk killkaykunata rikukuna',
+'recentchanges-summary' => 'Kay pankapi tukuy mushuk killkaykunata rikukuna',
 'recentchanges-feed-description' => 'Kay willay mayupi ashtawan mushuk killkaykunata rikukuna',
 'recentchanges-label-newpage' => 'Kay killkayka shuk mushuk pankata kamachirka.',
 'recentchanges-label-minor' => 'Kay killkayka uchillami kan',
index 4b12a40..948c6a6 100644 (file)
@@ -403,14 +403,15 @@ Eventualmain ha gia insatgi auter stizza quest element.',
 'badtitle' => "Il num da titel endatà n'è betg valid",
 'badtitletext' => 'Il titel da pagina era betg valid, vids u in titel inter-lingua u inter-wiki betg correct.
 El po cuntegnair in u plirs segns che na pon betg vegnir utilisads en titels.',
-'perfcached' => 'Las suandantas datas vegnan ord il cache ed èn eventualmain betg cumplettamain actualas. Maximalmain {{PLURAL:$1|in resultat è|$1 resultats èn}} disponibels en il cache.',
-'perfcachedts' => 'Las suandantas datas derivan dal cache, ultima actualisaziun ils $2 las $3. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => "Las suandantas datas vegnan ord il cache e n'èn eventualmain betg cumplettamain actualas. Maximalmain {{PLURAL:$1|in resultat è disponibel|$1 resultats èn disponibels}} en il cache.",
+'perfcachedts' => 'Las suandantas datas derivan dal cache, ultima actualisaziun ils $2 las $3. Maximalmain {{PLURAL:$4|in resultat è disponibel|$4 resultats èn disponibels}} en il cache.',
 'querypage-no-updates' => 'Las actualisaziuns da questa pagina èn deactivadas. 
 Las datas qua vegnan da preschent betg actualisadas.',
 'wrong_wfQuery_params' => 'Parameters fauss per wfQuery()<br />
 Funcziun: $1<br />
 Query: $2',
 'viewsource' => 'Mussar il code da fontauna',
+'viewsource-title' => 'Vesair il code da funtauna da $1',
 'actionthrottled' => 'Acziun limitada',
 'actionthrottledtext' => 'Sco mesira cunter spam na pos ti betg exequir questa acziun memia bleras giadas en curt temp. Ti has surpassà questa limita. 
 Emprova danovamain en in per minutas.',
@@ -581,6 +582,10 @@ Pled-clav temporar: $2",
 
 # Special:ChangeEmail
 'changeemail' => "Midar l'adressa dad e-mail",
+'changeemail-no-info' => "Ti stos t'annunziar per acceder directamain questa pagina.",
+'changeemail-newemail' => ' Nova adressa dad e-mail',
+'changeemail-none' => '(nagina)',
+'changeemail-cancel' => 'Interrumper',
 
 # Edit page toolbar
 'bold_sample' => 'Text grass',
@@ -933,7 +938,7 @@ Fa stim che navigar cun agid da las coalliziuns reinizialisescha tia tscherna.',
 'mergelogpagetext' => "Sutvart è ina glista da las ultimas cronologias ch'èn vegnidas unidas cun autras.",
 
 # Diffs
-'history-title' => 'Cronica da versiuns da "$1"',
+'history-title' => '$1: Cronologia da las versiuns',
 'difference-multipage' => '(Differenzas tranter las paginas)',
 'lineno' => 'Lingia $1:',
 'compareselectedversions' => 'cumparegliar las versiuns selecziunadas',
@@ -1031,7 +1036,7 @@ Considerescha che lur index da {{SITENAME}} po cuntegnair datas ch'èn betg pli
 'prefs-rc' => 'Ultimas midadas',
 'prefs-watchlist' => "Glista d'observaziun",
 'prefs-watchlist-days' => "Dumber dals dis che vegnan inditgads sin la glista d'observaziun:",
-'prefs-watchlist-days-max' => 'Maximum $1 {{PLURAL:$1|day|days}}',
+'prefs-watchlist-days-max' => 'Maximalmain $1 {{PLURAL:$1|di|dis}}',
 'prefs-watchlist-edits' => 'Dumber da las midadas mussadas en la glista dad observaziun extendida:',
 'prefs-watchlist-edits-max' => 'Dumber maximal: 1000',
 'prefs-watchlist-token' => "Token da la glista d'observaziun",
@@ -1105,6 +1110,8 @@ Questa infurmaziun è publica.',
 'email' => 'E-mail',
 'prefs-help-realname' => "Opziun: Qua pos inditgar in surnum che vegn inditga empè da tes num d'utilisader en tias suttascripziuns cun '''<nowiki>--~~~~</nowiki>'''.",
 'prefs-help-email' => "L'adressa dad e-mail è opziunala, pussibilitescha dentant da trametter in nov pled-clav en cass da sperdita.",
+'prefs-help-email-others' => 'Ti pos era decider che auters ta pon contactar per e-mail entras in link sin tia pagina da discussion.
+Tia adressa dad e-mail na vegn betg mussada sche auters utilisaders ta contacteschan.',
 'prefs-help-email-required' => "Inditgar in'adressa dad e-mail è obligatoric.",
 'prefs-info' => 'Infurmaziuns da basa',
 'prefs-i18n' => 'Internaziunalisaziun',
@@ -1130,7 +1137,7 @@ Questa infurmaziun è publica.',
 'userrights-lookup-user' => "Administrar gruppas d'utilisaders",
 'userrights-user-editname' => "Inditgescha in num d'utilisader:",
 'editusergroup' => "Modifitgar las gruppas d'utilisaders",
-'editinguser' => "Midar ils dretgs da l'utilisader '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+'editinguser' => "Midar ils dretgs da l'utilisader '''[[User:$1|$1]]''' $2",
 'userrights-editusergroup' => "Modifitgar las gruppas d'utilisaders",
 'saveusergroups' => "Memorisar questas gruppas d'utilisaders",
 'userrights-groupsmember' => 'Commember da:',
@@ -1143,7 +1150,7 @@ Questa infurmaziun è publica.',
 'userrights-no-interwiki' => "Ti n'has betg la permissiun da midar dretgs d'utilisaders sin autras wikis.",
 'userrights-nodatabase' => "La banca da datas $1 n'exista betg u n'è betg locala.",
 'userrights-nologin' => "Ti stos [[Special:UserLogin|t'annunziar]] cun in conto d'aministratur per modifitgar ils dretgs d'utilisader.",
-'userrights-notallowed' => "Tes conto d'utilisader n'ha betg la permissiun dad agiuntar dretgs d'utilisaders.",
+'userrights-notallowed' => "Tes conto d'utilisader n'ha betg la permissiun dad agiuntar u allontanar dretgs d'utilisaders.",
 'userrights-changeable-col' => 'Gruppas che ti pos modifitgar',
 'userrights-unchangeable-col' => 'Gruppas che ti nas pos betg modifitgar',
 
@@ -1154,15 +1161,15 @@ Questa infurmaziun è publica.',
 'group-bot' => 'Bots',
 'group-sysop' => 'Administraturs',
 'group-bureaucrat' => 'Birocrat',
-'group-suppress' => 'Oversights',
+'group-suppress' => 'Supervisurs',
 'group-all' => '(tuts)',
 
-'group-user-member' => 'Utilisader',
-'group-autoconfirmed-member' => 'Utilisader confermà automaticamain',
-'group-bot-member' => 'Bot',
-'group-sysop-member' => 'Administratur',
-'group-bureaucrat-member' => 'Birocrat',
-'group-suppress-member' => 'Oversight',
+'group-user-member' => '{{GENDER:$1|utilisader|utilisadra|utilisader}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|utilisader confermà automaticamain|utilisadra confermada automaticamain|utilisader confermà automaticamain}}',
+'group-bot-member' => '{{GENDER:$1|bot}}',
+'group-sysop-member' => '{{GENDER:$1|administratur|administratura|administratur}}',
+'group-bureaucrat-member' => '{{GENDER:$1|birocrat|birocrata|birocrat}}',
+'group-suppress-member' => '{{GENDER:$1|supervisur|supervisura|supervisur}}',
 
 'grouppage-user' => '{{ns:project}}:Utilisaders',
 'grouppage-autoconfirmed' => '{{ns:project}}:Utilisaders confermads automaticamain',
@@ -1275,7 +1282,7 @@ Questa infurmaziun è publica.',
 'nchanges' => '$1 {{PLURAL:$1|midada|midadas}}',
 'recentchanges' => 'Ultimas midadas',
 'recentchanges-legend' => 'Opziuns per las ultimas midadas',
-'recentchangestext' => "Sin questa pagina pos ti suandar las ultimas midadas sin '''{{SITENAME}}'''.",
+'recentchanges-summary' => "Sin questa pagina pos ti suandar las ultimas midadas sin '''{{SITENAME}}'''.",
 'recentchanges-feed-description' => 'Suonda las ultimas midadas en la wiki cun quet feed.',
 'recentchanges-label-newpage' => 'Questa modificaziun ha creà ina nova pagina',
 'recentchanges-label-minor' => 'Quai è ina pitschna modificaziun',
@@ -1423,17 +1430,51 @@ Controllescha per plaschair l'opziun <code>file_uploads</code>.",
 'upload-description' => 'Descripziun da la datoteca',
 'upload-options' => 'Opziuns per chargiar si',
 'watchthisupload' => 'Observar questa datoteca',
+'upload-success-subj' => 'Transferì cun success',
+'upload-success-msg' => 'Tes transfer da [$2] è stà cun success. La datoteca è disponibla qua: [[:{{ns:file}}:$1]]',
+'upload-failure-subj' => 'Probelm cun transferir',
+'upload-failure-msg' => 'I è capitada ina errur durant transferir da [$2]:
+$1',
+'upload-warning-subj' => 'Avertiment da transferir',
+'upload-warning-msg' => 'Ina errur è capitada cun tes transfer da [$2]. Ti pos returnar al [[Special:Upload/stash/$1|formular per transferir]] per curreger quest problem.',
 
 'upload-proto-error' => 'Protocol nuncorrect',
+'upload-proto-error-text' => 'Il transfer da servers externs basegna URLs che cumenzan cun <code>http://</code> u <code>ftp://</code>.',
+'upload-file-error' => 'Errur interna',
+'upload-file-error-text' => 'Ina errur interna è capitada durant empruvar da crear ina datoteca temporara sin il server. 
+Contactescha per plaschair in [[Special:ListUsers/sysop|administratur]].',
+'upload-misc-error' => 'Errur da transferir nunenconuschenta',
+'upload-misc-error-text' => "Ina errur nunenconuschenta è capitada durant transferir. 
+Controllescha per plaschair che l'URL è valida ed accessibla ed emprova anc ina giada.
+Sch'il problem exista anc adina, contactescha in [[Special:ListUsers/sysop|administratur]].",
 'upload-too-many-redirects' => 'La URL ha cuntegnì memia blers renviaments',
 'upload-unknown-size' => 'Grondezza nunenconuschenta',
 'upload-http-error' => 'In sbagl da HTTP è capità: $1',
 
+# File backend
+'backend-fail-stream' => 'Impussibel da leger la datoteca $1.',
+'backend-fail-backup' => 'Impussibel da far ina copia da segirezza da $1.',
+'backend-fail-notexists' => "La datoteca $1 n'exista betg.",
+'backend-fail-hashes' => "Impussibel d'obtenir ils hashs da las datotecas per las cumparegliar.",
+'backend-fail-notsame' => 'Ina datoteca betg identica exista gia sin $1.',
+'backend-fail-invalidpath' => "$1 n'è betg in percus valida per memorisar.",
+'backend-fail-delete' => 'Impussibel da stizzar la datoteca $1.',
+'backend-fail-alreadyexists' => 'La datoteca $1 exista gia.',
+'backend-fail-store' => 'Impussibel da memorisar la datoteca $1 en $2.',
+'backend-fail-copy' => 'Impussibel da copiar la datoteca $1 a $2.',
+'backend-fail-move' => 'Impussibel da spustar la datoteca $1 a $2.',
+'backend-fail-opentemp' => 'Impussibel dad avrir la datoteca temporara.',
+'backend-fail-writetemp' => 'Impussibel da scriver en la datoteca temporara.',
+'backend-fail-closetemp' => 'Impussibel da serrar la datoteca temporara.',
+'backend-fail-read' => 'Impussibel da leger la datoteca $1.',
+'backend-fail-create' => 'Impussibel da crear la datoteca $1.',
+'backend-fail-readonly' => 'Il backend "$1" da memorisar è actualmain en il modus da be leger. Il motiv inditgà è: "$2".',
+
 # img_auth script messages
 'img-auth-accessdenied' => "Refusà l'access",
 'img-auth-nopathinfo' => "PATH_INFO manca.
 Tes server n'è betg configurà per surdar questa infurmaziun.
-I basa forsa sin CGI è na sustegna betg img_auth.
+El basa forsa sin CGI è na sustegna betg img_auth.
 Consultescha https://www.mediawiki.org/wiki/Manual:Image_Authorization.",
 'img-auth-nologinnWL' => 'Ti n\'ès betg t\'annunzia ed "$1" n\'è betg sin la glista alva.',
 'img-auth-nofile' => 'Datoteca "$1" n\'exista betg.',
@@ -1583,7 +1624,7 @@ Betg emblida da controllar sche autras colliaziuns mainan als models avant ch'al
 'statistics-users-active-desc' => "Utilisaders che han fatg almain ina acziun {{PLURAL:$1|l'ultim di|ils ultims $1 dis}}",
 'statistics-mostpopular' => 'Paginas visitadas il pli savens',
 
-'disambiguations' => 'Paginas per la decleraziun da noziuns',
+'disambiguations' => 'Paginas cun colliaziuns sin paginas per la decleraziun da noziuns',
 'disambiguationspage' => 'Template:disambiguiziun',
 
 'doubleredirects' => 'Renviaments dubels',
@@ -1664,7 +1705,7 @@ I renviescha uss a [[$2]].',
 'booksources-go' => 'Leger',
 
 # Special:Log
-'specialloguserlabel' => 'Utilisader:',
+'specialloguserlabel' => 'Acziun exequida da:',
 'speciallogtitlelabel' => 'Titel:',
 'log' => 'logs / cudesch da navigaziun',
 'all-logs-page' => 'Tut ils logs publics',
@@ -1694,7 +1735,7 @@ I renviescha uss a [[$2]].',
 'sp-deletedcontributions-contribs' => 'contribuziuns',
 
 # Special:LinkSearch
-'linksearch' => 'Colliaziuns externas',
+'linksearch' => 'Tschertgar colliaziuns externas',
 'linksearch-pat' => 'Muster da tschertgar:',
 'linksearch-ns' => 'Tip da pagina:',
 'linksearch-ok' => 'Tschertgar',
@@ -2223,7 +2264,7 @@ En quests cas as ti da spustar u colliar manualmain las paginas, sche giavischà
 
 L\'artitgel da destinaziun "[[:$1]]" exista gia. Vul ti stizzar el per far plaz per spustar?',
 'delete_and_move_confirm' => 'Gea, stizzar il artitgel da destinaziun per spustar',
-'delete_and_move_reason' => 'Stizzà per far plaz per spustar',
+'delete_and_move_reason' => 'Stizzà per far plaz per spustar da "[[$1]]"',
 'selfmove' => 'Il num da funtauna e destinaziun èn identics; 
 betg pussaivel da spustar ina pagina en il medem lieu.',
 'immobile-source-namespace' => 'Paginas dal tip da pagina "$1" na pon betg vegnir spustadas',
@@ -2254,9 +2295,11 @@ Quel po vegnir importà en ina autra wiki che sa basa sin MediaWiki cun agid da
 Endatescha en il champ sutvart tut ils artitgels che ti vuls exportar, per mintga artitgel ina nova lingia, ed inditgescha era sche ti vuls includer l'entira cronologia u be la versiun actuala. 
 
 En cas che ti vul be exportar l'ultima versiun pos ti era utilisar in link, p.ex. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] per la pagina \"[[{{MediaWiki:Mainpage}}]]\".",
+'exportall' => 'Exportar tut las paginas',
 'exportcuronly' => "Exportar be la versiun actuala, betg l'entira cronologia",
 'exportnohistory' => "----
 '''Remartga:''' La funcziun dad exportar l'entira cronologia en questa furma è deactivada ord motivs da prestaziun.",
+'exportlistauthors' => 'Integrar ina glista cumpletta dals contribuents a mintga pagina',
 'export-submit' => 'Exportar',
 'export-addcattext' => 'Agiuntar paginas da la categoria:',
 'export-addcat' => 'Agiuntar',
@@ -2289,6 +2332,8 @@ Fai ina visita sin [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation
 'thumbnail_error' => 'Sbagl cun crear il maletg da prevista: $1',
 'djvu_page_error' => 'Pagina da DjVu è ordaifer la limita',
 'djvu_no_xml' => "Betg pussaivel da retschaiver l'XML per la datoteca da DjVu",
+'thumbnail-temp-create' => 'Impussibel da crear in maletg da prevista temporar',
+'thumbnail-dest-create' => 'Impussibel da memorisar il maletg da prevista a la destinaziun',
 'thumbnail_invalid_params' => 'Parameters nunvalids dal maletg da prevista',
 'thumbnail_dest_directory' => "Betg pussaivel da crear l'ordinatur da destinaziun.",
 'thumbnail_image-type' => 'Quest tip da maletg na vegn betg sustegnì',
@@ -2337,6 +2382,11 @@ In ordinatur temporar manca.",
 'import-token-mismatch' => 'Perdita da datas da la sesida.
 Emprova danovamain.',
 'import-invalid-interwiki' => 'Betg pussaivel dad importar dal wiki inditgà.',
+'import-error-edit' => 'La pagina "$1" n\'è betg vegnida importada perquai che ti na dastgas betg la modifitgar.',
+'import-error-create' => 'La pagina "$1" n\'è betg vegnida importada perquai che ti na la dastgas betg crear.',
+'import-error-interwiki' => 'La pagina "$1" n\'è betg vegnida importada perquai ch\'il num è reservà per colliaziuns externas (interwiki).',
+'import-error-special' => 'La pagina "$1" n\'è betg vegnida importada perquai ch\'ella fa part dad in tip da pagina spezial che na lubescha naginas pagina.',
+'import-error-invalid' => 'La pagina "$1" n\'è betg vegnida importada perquai ch\'il num n\'è betg valid.',
 
 # Import log
 'importlogpage' => 'Log dals imports',
@@ -2346,6 +2396,16 @@ Emprova danovamain.',
 'import-logentry-interwiki' => 'ha importà $1 (transwiki)',
 'import-logentry-interwiki-detail' => '{{PLURAL:$1|Ina versiun|$1 versiuns}} da $2',
 
+# JavaScriptTest
+'javascripttest' => 'Test da JavaScript',
+'javascripttest-disabled' => 'Questa funcziun è deactivada.',
+'javascripttest-title' => 'Exequir tests da $1',
+'javascripttest-pagetext-noframework' => 'Questa pagina è reservada per exequir tests da JavaScript.',
+'javascripttest-pagetext-unknownframework' => 'Framework da test nunenconuschent "$1".',
+'javascripttest-pagetext-frameworks' => 'Tscherna per plaschair in dals suandantas frameworks da test: $1',
+'javascripttest-pagetext-skins' => 'Tscherna in skin che duai vegnir utilisà per ils tests:',
+'javascripttest-qunit-intro' => 'Legia la [$1 documentaziun da tests] sin mediawiki.org.',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => "Mussar tia pagina d'utilisader",
 'tooltip-pt-anonuserpage' => "La pagina d'utilisader per l'adressa IP cun la quala che ti fas modificaziuns",
@@ -2408,6 +2468,8 @@ Ti pos vesair il code-fundamental.',
 'tooltip-diff' => 'Mussar las midadas che ti has fatg en il text.',
 'tooltip-compareselectedversions' => 'Mussar la differenza tranter las duas versiuns selecziunadas da questa pagina.',
 'tooltip-watch' => "Agiuntar questa pagina a tia pagina d'observaziun",
+'tooltip-watchlistedit-normal-submit' => 'Allontanar las endataziuns tschernidas',
+'tooltip-watchlistedit-raw-submit' => "Actualisar la glista d'observaziun",
 'tooltip-recreate' => "Crear danovamain la pagnina, malgrà ch'ella è vegnida stizzada",
 'tooltip-upload' => 'Cumenzar da chargiar si',
 'tooltip-rollback' => "Revochescha tut las modificaziuns vid questa pagina da l'ultim utilisader cun be in clic.",
@@ -2503,7 +2565,7 @@ Cun exequir questa datoteca po tes sistem vegnir donnegià.",
 'svg-long-desc' => 'datoteca da SVG, grondezza da basa $1 × $2 pixels, grondezza da datoteca: $3',
 'show-big-image' => 'Resoluziun cumplaina',
 'show-big-image-preview' => 'Grondezza da questa prevista: $1.',
-'show-big-image-other' => 'Autras resoluziuns: $1.',
+'show-big-image-other' => 'Other {{PLURAL:$2|resoluziun|resoluziuns}}: $1.',
 'show-big-image-size' => '$1 × $2 pixels',
 'file-info-gif-looped' => 'marscha infinit',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|maletg|maletgs}}',
@@ -2523,6 +2585,13 @@ Cun exequir questa datoteca po tes sistem vegnir donnegià.",
 'bydate' => 'tenor data',
 'sp-newimages-showfrom' => 'Las novas datotecas davent dal $1 las $2 vegnan mussadas.',
 
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL:$1|$1 secunda|$1 secundas}}',
+'minutes' => '{{PLURAL:$1|$1 minuta|$1 minutas}}',
+'hours' => '{{PLURAL:$1|$1 ura|$1 uras}}',
+'days' => '{{PLURAL:$1|$1 di|$1 dis}}',
+'ago' => 'avant $1',
+
 # Bad image list
 'bad_image_list' => "Il format è sco suonda:
 
@@ -2744,9 +2813,9 @@ Sche la datoteca è vegnida midada dal status original èn tscherts detagls even
 'exif-orientation-3' => 'Rotà per 180°',
 'exif-orientation-4' => 'Reflectà verticalmain',
 'exif-orientation-5' => "Rotà 90° en senn cuntrari a l'ura e reflectà verticalmain",
-'exif-orientation-6' => "Rotà 90° en senn da l'ura",
+'exif-orientation-6' => "Rotà 90° en senn cuntrari a l'ura",
 'exif-orientation-7' => "Rotà 90° en senn da l'ura e reflectà verticalmain",
-'exif-orientation-8' => "Rotà 90° en senn cuntrari a l'ura",
+'exif-orientation-8' => "Rotà 90° en senn da l'ura",
 
 'exif-planarconfiguration-1' => 'Format grop (chunky)',
 'exif-planarconfiguration-2' => 'Format planar',
@@ -3178,6 +3247,9 @@ Endatescha il num da datoteca senza il prefix "{{ns:file}}:".',
 'compare-rev1' => 'Versiun 1',
 'compare-rev2' => 'Versiun 2',
 'compare-submit' => 'Cumparegliar',
+'compare-invalid-title' => 'Il titel che ti has spezifitgà è nunvalid.',
+'compare-title-not-exists' => "Il titel che ti has inditgà n'exista betg.",
+'compare-revision-not-exists' => "La versiun che ti has inditgà n'exista betg.",
 
 # Database error messages
 'dberr-header' => 'Questa wiki ha in problem',
@@ -3206,6 +3278,60 @@ Questa pagina ha actualmain difficultads tecnicas.',
 'sqlite-no-fts' => '$1 senza sustegn per la retschertga da text integrala',
 
 # New logging system
+'logentry-delete-delete' => '$1 ha stizzà la pagina $3',
+'logentry-delete-restore' => '$1 ha restaurà la pagina $3',
 'newuserlog-byemail' => 'tramess il pled-clav per e-mail',
 
+# Feedback
+'feedback-subject' => 'Object:',
+'feedback-message' => 'Messadi:',
+'feedback-cancel' => 'Interrumper',
+'feedback-submit' => 'Trametter il resun',
+'feedback-adding' => 'Agiuntar il resun a la pagina…',
+'feedback-error1' => 'Errur: Resultat nunenconuschent dal API',
+'feedback-error2' => "Errur: La modificaziun n'è betg reussida",
+'feedback-error3' => 'Errur: Nagina resposta dal API',
+'feedback-thanks' => 'Grazia! Tes resun è vegnì publitgà sin la pagina "[$2 $1]".',
+'feedback-close' => 'Terminà',
+'feedback-bugcheck' => "Grondius! Controllescha simplamain che quai n'è betg gia in da las [$1 errurs enconuschentas].",
+'feedback-bugnew' => 'Jau hai controllà. Rapportar ina nova errur.',
+
+# API errors
+'api-error-badaccess-groups' => 'Ti na dastgas betg chargiar datotecas en quest wiki.',
+'api-error-badtoken' => 'Errur interna: Token fauss.',
+'api-error-copyuploaddisabled' => 'La funcziun da transferir dad ina URL è deactivada sin quest server.',
+'api-error-duplicate' => 'I dat gia {{PLURAL:$1|ina [$2 autra datoteca]|[$2 autras datotecas]}} cun il medem cuntegn.',
+'api-error-duplicate-archive' => 'I deva gia {{PLURAL:$1|ina [$2 autra datoteca]|[$2 autras datotecas]}} cun il medem cuntegn, {{PLURAL:$1|quella è dentant vegnida stizzada|quellas èn dentant vegnidas stizzadas}}.',
+'api-error-duplicate-archive-popup-title' => "{{PLURAL:$1|Datoteca dubla ch'è gia vegnida stizzada|Datotecas dublas ch'èn gia vegnidas stizzadas}}.",
+'api-error-duplicate-popup-title' => '{{PLURAL:$1|Datoteca dubla|Datotecas dublas}}.',
+'api-error-empty-file' => 'La datoteca tramessa è vida.',
+'api-error-emptypage' => "Crear paginas novas e vidas n'è betg lubì.",
+'api-error-fetchfileerror' => "Errur interna: Insatge n'ha betg funcziunà durant retschaiver la datoteca.",
+'api-error-file-too-large' => 'La datoteca che ti has tramess era memia gronda.',
+'api-error-filename-tooshort' => 'Il num da datoteca è memia curt.',
+'api-error-filetype-banned' => 'Quest tip da datoteca è scumandà.',
+'api-error-filetype-missing' => "Il num da datoteca n'ha betg ina finiziun da datoteca.",
+'api-error-hookaborted' => 'La midada che ti has empruvà da far è vegnida interrutta dad ina extensiun.',
+'api-error-http' => 'Errur interna: Betg pussaivel da connectar cun il server.',
+'api-error-illegal-filename' => "Il num da datoteca n'è betg lubì.",
+'api-error-internal-error' => "Errur interna: Insatge n'ha betg funcziunà durant transmetter tia datoteca en la vichi.",
+'api-error-invalid-file-key' => "Errur interna: La datoteca n'è betg vegnida chattada en la memoria temporara.",
+'api-error-missingparam' => 'Errur interna: Parameters da la dumonda manchants.',
+'api-error-missingresult' => "Errur interna: I na pudeva betg vegnir constatà sch'il process da copiar è reussì.",
+'api-error-mustbeloggedin' => "Ti stos esser t'annunzià per pudair transferir datotecas.",
+'api-error-mustbeposted' => 'Errur interna: La dumonda basegna HTTP POST.',
+'api-error-noimageinfo' => "La datoteca è vegnida transferida cun success, ma il server n'ha returnà naginas infurmaziuns davart la datoteca.",
+'api-error-nomodule' => 'Errur interna: Nagin modul per chargiar si è definì.',
+'api-error-ok-but-empty' => 'Errur interna: Nagina resposta dal server.',
+'api-error-overwrite' => "Recuvrir (surscriver) ina daoteca existenta n'è betg lubì.",
+'api-error-stashfailed' => 'Errur interna: Errur cun memorisar la datoteca temporara.',
+'api-error-timeout' => "Il server n'ha betg respundì entaifer il temp spetgà.",
+'api-error-unclassified' => 'Ina errur nunenconuschenta è capitada.',
+'api-error-unknown-code' => 'Errur nunenconuschenta: "$1"',
+'api-error-unknown-error' => "Errur interna: Insatge n'ha betg funcziunà durant transferir tia datoteca.",
+'api-error-unknown-warning' => 'Avertiment nunenconuschent: "$1".',
+'api-error-unknownerror' => 'Errur nunenconuschenta: "$1".',
+'api-error-uploaddisabled' => 'La funcziun da chargiar datotecas sin quest vichi è deactivada.',
+'api-error-verification-error' => 'Questa datoteca pudess esser corrupta ni avair ina extensiun faussa.',
+
 );
index 7bf69c3..4add177 100644 (file)
@@ -146,6 +146,7 @@ $magicWords = array(
        'contentlanguage'         => array( '1', 'LIMBACONTINUT', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
        'pagesinnamespace'        => array( '1', 'PANIGIINSPATIULDENUME:', 'PAGINIINSN:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
        'numberofadmins'          => array( '1', 'NUMARADMINI', 'NUMBEROFADMINS' ),
+       'formatnum'               => array( '0', 'FORMATNR', 'FORMATNUM' ),
        'defaultsort'             => array( '1', 'SORTAREIMPLICITA:', 'CHEIESORTAREIMPLICITA:', 'CATEGORIESORTAREIMPLICITA:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                => array( '0', 'CALEAFISIERULUI:', 'FILEPATH:' ),
        'tag'                     => array( '0', 'eticheta', 'tag' ),
@@ -1258,9 +1259,9 @@ Folosirea linkurilor de navigare va reseta această coloană.',
 'mergelogpagetext' => 'Mai jos este o listă a celor mai recente combinări ale istoricului unei pagini cu al alteia.',
 
 # Diffs
-'history-title' => 'Istoricul versiunilor pentru „$1”',
-'difference-title' => 'Diferență între versiunile paginii „$1”',
-'difference-title-multipage' => 'Diferență între paginile „$1” și „$2”',
+'history-title' => '$1: Istoricul versiunilor',
+'difference-title' => '$1: Diferență între versiuni',
+'difference-title-multipage' => '$1 și $2: Diferență între pagini',
 'difference-multipage' => '(Diferență între pagini)',
 'lineno' => 'Linia $1:',
 'compareselectedversions' => 'Compară versiunile marcate',
@@ -1356,6 +1357,7 @@ Folosirea linkurilor de navigare va reseta această coloană.',
 'prefs-beta' => 'Opțiuni beta',
 'prefs-datetime' => 'Data și ora',
 'prefs-labs' => 'Opțiuni „labs”',
+'prefs-user-pages' => 'Pagini de utilizator',
 'prefs-personal' => 'Informații personale',
 'prefs-rc' => 'Schimbări recente',
 'prefs-watchlist' => 'Listă de urmărire',
@@ -1619,7 +1621,7 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'nchanges' => '$1 {{PLURAL:$1|modificare|modificări|de modificări}}',
 'recentchanges' => 'Schimbări recente',
 'recentchanges-legend' => 'Opțiuni schimbări recente',
-'recentchangestext' => 'Urmăriți în această pagină cele mai recente modificări de pe site.',
+'recentchanges-summary' => 'Schimbări recente ... (Log)',
 'recentchanges-feed-description' => 'Urmărește cele mai recente schimbări folosind acest flux.',
 'recentchanges-label-newpage' => 'Această modificare a creat o pagină nouă',
 'recentchanges-label-minor' => 'Aceasta este o modificare minoră',
@@ -1813,9 +1815,10 @@ Dacă problema persistă, contactați un [[Special:ListUsers/sysop|administrator
 'backend-fail-writetemp' => 'Imposibil de scris în fișierul temporar.',
 'backend-fail-closetemp' => 'Imposibil de închis fișierul temporar.',
 'backend-fail-read' => 'Imposibil de citit fișierul $1.',
-'backend-fail-create' => 'Imposibil de creat fișierul $1.',
-'backend-fail-maxsize' => 'Nu s-a putut crea fișierul $1 pentru că acesta este mai mare de {{PLURAL:$2|un octet|$2 octeți|$2 de octeți}}.',
+'backend-fail-create' => 'Imposibil de scris fișierul $1.',
+'backend-fail-maxsize' => 'Nu s-a putut scrie fișierul $1 pentru că acesta este mai mare de {{PLURAL:$2|un octet|$2 octeți|$2 de octeți}}.',
 'backend-fail-contenttype' => 'Nu s-a putut determina tipul de conținut al fișierului de stocat la „$1”.',
+'backend-fail-usable' => 'Imposibil de scris fișierul $1 din cauza permisiunilor insuficiente sau din cauza directoarelor/containerelor lipsă.',
 
 # Lock manager
 'lockmanager-notlocked' => 'Imposibil de deblocat „$1”; nu este blocată.',
@@ -1874,7 +1877,6 @@ Pentru securitate optimă, img_auth.php este dezactivat.',
 'http-curl-error' => 'Eroare la preluarea adresei URL: $1',
 'http-host-unreachable' => 'Adresa URL nu a putut fi accesată.',
 'http-bad-status' => 'A apărut o problemă în timpul solicitării HTTP: $1 $2',
-'http-truncated-body' => 'Corpul cererii a fost recepționat doar parțial.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Nu pot găsi adresa URL',
@@ -3107,7 +3109,7 @@ Executându-l, sistemul dvs. poate fi compromis.",
 'file-info-size-pages' => '$1 × $2 pixeli, mărime fișier: $3, tip MIME: $4, $5 {{PLURAL:$5|pagină|pagini}}',
 'file-nohires' => 'Rezoluții mai mari nu sunt disponibile.',
 'svg-long-desc' => 'fișier SVG, cu dimensiunea nominală de $1 × $2 pixeli, mărime fișier: $3',
-'show-big-image' => 'Mărește rezoluția imaginii',
+'show-big-image' => 'Rezoluție maximă',
 'show-big-image-preview' => 'Mărimea acestei previzualizări: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Altă rezoluție|Alte rezoluții}}: $1.',
 'show-big-image-size' => '$1 × $2 pixeli',
@@ -3828,11 +3830,11 @@ Imaginile sunt afișate la rezoluția lor maximă, în timp ce alte tipuri de fi
 # Database error messages
 'dberr-header' => 'Acest site are o problemă',
 'dberr-problems' => 'Ne cerem scuze! Acest site întâmpină dificultăți tehnice.',
-'dberr-again' => 'Așteaptă câteva minute și încearcă din nou.',
+'dberr-again' => 'Așteptați câteva minute și încercați din nou.',
 'dberr-info' => '(Nu pot contacta baza de date a serverului: $1)',
-'dberr-usegoogle' => 'Între timp poți efectua căutarea folosind Google.',
-'dberr-outofdate' => 'De reținut ca indexarea conținutului nostru de către ei poate să nu fie actualizată.',
-'dberr-cachederror' => 'Următoarea pagină este o copie în cache a paginii cerute, s-ar putea să nu fie actualizată.',
+'dberr-usegoogle' => 'Între timp puteți efectua căutarea folosind Google.',
+'dberr-outofdate' => 'De reținut că indexarea conținutului nostru de către ei poate să nu fie actualizată.',
+'dberr-cachederror' => 'Următoarea pagină este o copie în cache a paginii cerute, care s-ar putea să nu fie actualizată.',
 
 # HTML forms
 'htmlform-invalid-input' => 'Există probleme la valorile introduse',
index d24fa35..52a1a08 100644 (file)
@@ -827,6 +827,7 @@ Ste argumende onne state luete.",
 'parser-template-recursion-depth-warning' => "Ha state supranete 'u limite di ricorsione de le template ($1)",
 'language-converter-depth-warning' => "'U convertitore de lènghe ha subranate 'u limite de profonnetà ($1)",
 'node-count-exceeded-category' => "Pàggene addò 'u cunde de le node ha sbunnate",
+'node-count-exceeded-warning' => "Pagene ha sbunnate 'u condegge de le node",
 'expansion-depth-exceeded-category' => "Pàggene addò 'a profonnetà de l'espanzione jè supranate",
 'expansion-depth-exceeded-warning' => "Pàggene ca sbonnane 'a profonnetà de espanzione",
 
@@ -1008,7 +1009,9 @@ Vide Bbuene ca ausanne le collegaminde de navigazzione sta culonne avène azzera
 'mergelogpagetext' => "Stte stè 'na liste de le cchiù recende scuagghiaminde de le cunde de le vosce jndr'à 'n'otre.",
 
 # Diffs
-'history-title' => 'Liste de le versiune de "$1"',
+'history-title' => '$1: Cunde de le revisiune',
+'difference-title' => "$1: Differenze 'mbrà revisiune",
+'difference-title-multipage' => "$1 e $2: Differenze 'mbrà le pàggene",
 'difference-multipage' => "(Differenze 'mbrà le pàggene)",
 'lineno' => 'Linea $1:',
 'compareselectedversions' => 'Combronde le versiune selezionete',
@@ -1372,7 +1375,7 @@ Ce tu 'u mitte, a fatje ca è fatte t'avène ricanusciute.",
 'nchanges' => '$1 {{PLURAL:$1|cangiaminde|cangiaminde}}',
 'recentchanges' => 'Cangiaminde recende',
 'recentchanges-legend' => 'Opzione pe le cangiaminde recende',
-'recentchangestext' => 'Tracce le cchiù recednde cangiaminde de Uicchi sus a sta pàgene.',
+'recentchanges-summary' => 'Tracce le cchiù recednde cangiaminde de Uicchi sus a sta pàgene.',
 'recentchanges-feed-description' => "Tracce le urteme cangiaminde sus 'a sta Uicchipedie jndr'à quiste feed.",
 'recentchanges-label-newpage' => "Stu cangiamende ha ccrejate 'na pàgena nove",
 'recentchanges-label-minor' => "Quiste ète 'nu cangiamende stuèdeche",
@@ -1587,8 +1590,9 @@ Ce 'u probbleme angore jè presende, condatte 'n'[[Special:ListUsers/sysop|ammin
 'backend-fail-writetemp' => 'Non ge pozze scrivere sus a file temboranèe.',
 'backend-fail-closetemp' => 'Non ge pozze achiudere file temboranèe.',
 'backend-fail-read' => "Non ge pozze leggere 'u file $1.",
-'backend-fail-create' => "Non ge pozze ccrejà 'u file $1.",
+'backend-fail-create' => "Non ge pozze scrivere 'u file $1.",
 'backend-fail-readonly' => 'L\'archivije de rete "$1" jè pe stu mumende in sole letture. \'U mutive ha state: "$2"',
+'backend-fail-synced' => "'U file \"\$1\" jè jndr'à 'nu state ingonsistende jndr'à l'archivije inderne",
 'backend-fail-connect' => 'Non ge pozze connettere \'a memorie de rrete "$1".',
 'backend-fail-internal' => "'N'errore scanusciute s'à verificate jndr'à l'archivije de rrete \"\$1\".",
 'backend-fail-contenttype' => 'Non ge pozze capìe \'u tipe de condenute d\'u file da reggistrà sus a "$1".',
@@ -2688,6 +2692,8 @@ Reggistrele sus a 'u combiuter tune e carechele aqquà.",
 'import-invalid-interwiki' => "Non ge pozze 'mbortà da 'a Uicchi specificate.",
 'import-error-edit' => 'Pàgene "$1" non g\' \'mbortate purcé tu non ge tìne le permesse pe cangiarle.',
 'import-error-create' => 'Pàgene "$1" non g\' \'mbortate purcé tu non ge tìne le permesse pe ccrejarle.',
+'import-error-interwiki' => 'Pagene "$1" non g\'ha state \'mbortate purcé \'u nome sue jè riservate pe collegaminde esterne (interuicchi).',
+'import-error-special' => "'A pagena \"\$1\" non g'ha state 'mbortate purcé apponde a 'nu namespace speciale ca non g'è permesse a le pàggene normale.",
 'import-error-invalid' => "'A pàgene \"\$1\" non g'ha state 'mbortate purcé 'u nome jè invalide.",
 
 # Import log
@@ -2705,6 +2711,7 @@ Reggistrele sus a 'u combiuter tune e carechele aqquà.",
 'javascripttest-pagetext-noframework' => 'Sta pàgene jè riservate pe le esecuziune de le test de Javascript.',
 'javascripttest-pagetext-unknownframework' => 'Ambiende de teste scanusciute "$1".',
 'javascripttest-pagetext-frameworks' => 'Pe piacere scacchie une de le seguende ambiende de test: $1',
+'javascripttest-pagetext-skins' => "Scacchie 'n'aspette pe eseguì le test cu:",
 'javascripttest-qunit-intro' => "Vide 'a [$1 documendazione d'u test] sus a mediawiki.org.",
 'javascripttest-qunit-heading' => 'Ambiende de test MediaUicchi JavaScript QUnit',
 
@@ -3887,6 +3894,8 @@ Ce nò, tu puè ausà 'u module facile aqquà sotte. 'U commende tune avène agg
 'api-error-badaccess-groups' => 'Tu non ge puè carecà file sus a sta Uicchi.',
 'api-error-badtoken' => 'Errore inderne: Gettone errate.',
 'api-error-copyuploaddisabled' => "'U carecamende da URL jè disabbilitate sus a stu server.",
+'api-error-duplicate' => "{{PLURAL:$1|Stè [$2 'n'otre file]|Stonne [$2 otre file]}} sus a 'u site cu 'u stesse condenute.",
+'api-error-duplicate-archive-popup-title' => "Dupliche {{PLURAL:$1|'u file ca ha state|le file ca onne state}} scangellate.",
 'api-error-duplicate-popup-title' => 'Dupleche {{PLURAL:$1|file|file}}',
 'api-error-empty-file' => "'U file ca tu è confermate ere vacande.",
 'api-error-emptypage' => 'Quanne se ne ccreje une, le pàggene vacande non ge sò permesse.',
@@ -3898,6 +3907,7 @@ Ce nò, tu puè ausà 'u module facile aqquà sotte. 'U commende tune avène agg
 'api-error-hookaborted' => "'U cangiamende ca tu stè pruève a ffà ha state inderrotte da 'n'estenzione.",
 'api-error-http' => "Errore inderne: Non ge se riesce a collegà a 'u server",
 'api-error-illegal-filename' => "'U nome d'u file non g'è permesse.",
+'api-error-internal-error' => "Errore inderne: Quaccheccose ha sciute male mendre ca ste processamme 'u carecamende tune sus 'a uicchi.",
 'api-error-invalid-file-key' => "Errore inderne: 'U file non ge se iacchie jndr'à memorie temboranèe.",
 'api-error-missingparam' => 'Errore inderne: Parametre mangande sus a richieste.',
 'api-error-missingresult' => "Errore inderne: Non ge se pò determinà ce 'a copie ha state fatte.",
index a4b4420..e5563d5 100644 (file)
  * @author გიორგიმელა
  */
 
-/**
- * Изменения сделанные в этом файле будут потеряны при обновлении MediaWiki.
- *
- * Если необходимо внести изменения в перевод отдельных строк интерфейса,
- * сделайте это посредством редактирования страниц вида «MediaWiki:*».
- * Их список можно найти на странице «Special:Allmessages».
- */
-
-$separatorTransformTable = array(
-       ',' => "\xc2\xa0", # nbsp
-       '.' => ','
-);
-
-$fallback8bitEncoding = 'windows-1251';
-$linkPrefixExtension = false;
-
 $namespaceNames = array(
        NS_MEDIA            => 'Медиа',
        NS_SPECIAL          => 'Служебная',
@@ -114,32 +98,88 @@ $namespaceGenderAliases = array(
        NS_USER_TALK => array( 'male' => 'Обсуждение_участника', 'female' => 'Обсуждение_участницы' ),
 );
 
-$dateFormats = array(
-       'mdy time' => 'H:i',
-       'mdy date' => 'xg j, Y',
-       'mdy both' => 'H:i, xg j, Y',
-
-       'dmy time' => 'H:i',
-       'dmy date' => 'j xg Y',
-       'dmy both' => 'H:i, j xg Y',
-
-       'ymd time' => 'H:i',
-       'ymd date' => 'Y xg j',
-       'ymd both' => 'H:i, Y xg j',
-
-       'ISO 8601 time' => 'xnH:xni:xns',
-       'ISO 8601 date' => 'xnY-xnm-xnd',
-       'ISO 8601 both' => 'xnY-xnm-xnd"T"xnH:xni:xns',
-
-);
-
-$bookstoreList = array(
-       'Поиск по библиотекам «Сигла»' => 'http://www.sigla.ru/results.jsp?f=7&t=3&v0=$1',
-       'Findbook.ru' => 'http://findbook.ru/search/d0?ptype=4&pvalue=$1',
-       'Яндекс.Маркет' => 'http://market.yandex.ru/search.xml?text=$1',
-       'ОЗОН' => 'http://www.ozon.ru/?context=advsearch_book&isbn=$1',
-       'Books.Ru' => 'http://www.books.ru/shop/search?query=$1',
-       'Amazon.com' => 'http://www.amazon.com/exec/obidos/ISBN=$1'
+$specialPageAliases = array(
+       'Activeusers'               => array( 'Активные_участники' ),
+       'Allmessages'               => array( 'Системные_сообщения' ),
+       'Allpages'                  => array( 'Все_страницы' ),
+       'Blankpage'                 => array( 'Пустая_страница' ),
+       'Block'                     => array( 'Заблокировать' ),
+       'Blockme'                   => array( 'Заблокируй_меня' ),
+       'Booksources'               => array( 'Источники_книг' ),
+       'BrokenRedirects'           => array( 'Разорванные_перенаправления' ),
+       'Categories'                => array( 'Категории' ),
+       'ChangeEmail'               => array( 'Сменить_e-mail' ),
+       'ChangePassword'            => array( 'Сменить_пароль' ),
+       'ComparePages'              => array( 'Сравнение_страниц' ),
+       'Confirmemail'              => array( 'Подтвердить_e-mail' ),
+       'Contributions'             => array( 'Вклад' ),
+       'CreateAccount'             => array( 'Создать_учётную_запись', 'Создать_пользователя', 'Зарегистрироваться' ),
+       'Deadendpages'              => array( 'Тупиковые_страницы' ),
+       'DeletedContributions'      => array( 'Удалённый_вклад' ),
+       'Disambiguations'           => array( 'Неоднозначные_ссылки' ),
+       'DoubleRedirects'           => array( 'Двойные_перенаправления' ),
+       'EditWatchlist'             => array( 'Править_список_наблюдения' ),
+       'Emailuser'                 => array( 'Письмо', 'Письмо_участнику', 'Отправить_письмо' ),
+       'Export'                    => array( 'Экспорт', 'Выгрузка' ),
+       'FileDuplicateSearch'       => array( 'Поиск_дубликатов_файлов' ),
+       'Filepath'                  => array( 'Путь_к_файлу' ),
+       'Import'                    => array( 'Импорт' ),
+       'BlockList'                 => array( 'Список_блокировок', 'Блокировки' ),
+       'LinkSearch'                => array( 'Поиск_ссылок' ),
+       'Listadmins'                => array( 'Список_администраторов' ),
+       'Listbots'                  => array( 'Список_ботов' ),
+       'Listfiles'                 => array( 'Список_файлов', 'Список_изображений' ),
+       'Listgrouprights'           => array( 'Список_прав_групп', 'Права_групп_участников' ),
+       'Listredirects'             => array( 'Список_перенаправлений' ),
+       'Listusers'                 => array( 'Список_участников' ),
+       'Lockdb'                    => array( 'Заблокировать_БД', 'Заблокировать_базу_данных' ),
+       'Log'                       => array( 'Журналы', 'Журнал' ),
+       'Lonelypages'               => array( 'Изолированные_страницы' ),
+       'Longpages'                 => array( 'Длинные_страницы' ),
+       'MergeHistory'              => array( 'Объединение_истории' ),
+       'MIMEsearch'                => array( 'Поиск_по_MIME' ),
+       'Mostimages'                => array( 'Самые_используемые_файлы' ),
+       'Movepage'                  => array( 'Переименовать_страницу', 'Переименование', 'Переименовать' ),
+       'Mycontributions'           => array( 'Мой_вклад' ),
+       'Mypage'                    => array( 'Моя_страница' ),
+       'Mytalk'                    => array( 'Моё_обсуждение' ),
+       'Myuploads'                 => array( 'Мои_загрузки' ),
+       'Newimages'                 => array( 'Новые_файлы' ),
+       'Newpages'                  => array( 'Новые_страницы' ),
+       'PasswordReset'             => array( 'Сброс_пароля' ),
+       'PermanentLink'             => array( 'Постоянная_ссылка' ),
+       'Popularpages'              => array( 'Популярные_страницы' ),
+       'Preferences'               => array( 'Настройки' ),
+       'Protectedpages'            => array( 'Защищённые_страницы' ),
+       'Protectedtitles'           => array( 'Защищённые_названия' ),
+       'Randompage'                => array( 'Случаная_страница', 'Случайная' ),
+       'Recentchanges'             => array( 'Свежие_правки' ),
+       'Recentchangeslinked'       => array( 'Связанные_правки' ),
+       'Search'                    => array( 'Поиск' ),
+       'Shortpages'                => array( 'Короткие_страницы' ),
+       'Specialpages'              => array( 'Спецстраницы' ),
+       'Statistics'                => array( 'Статистика' ),
+       'Tags'                      => array( 'Метки' ),
+       'Unblock'                   => array( 'Разблокировка' ),
+       'Uncategorizedcategories'   => array( 'Некатегоризованные_категории' ),
+       'Uncategorizedimages'       => array( 'Некатегоризованные_файлы' ),
+       'Uncategorizedpages'        => array( 'Некатегоризованные_страницы' ),
+       'Uncategorizedtemplates'    => array( 'Некатегоризованные_шаблоны' ),
+       'Unusedcategories'          => array( 'Неиспользуемые_категории' ),
+       'Unusedimages'              => array( 'Неиспользуемые_файлы' ),
+       'Unusedtemplates'           => array( 'Неиспользуемые_шаблоны' ),
+       'Upload'                    => array( 'Загрузка' ),
+       'UploadStash'               => array( 'Скрытная_загрузка' ),
+       'Userlogin'                 => array( 'Вход', 'Авторизация' ),
+       'Userlogout'                => array( 'Выход', 'Завершение_сеанса' ),
+       'Userrights'                => array( 'Управление_правами' ),
+       'Version'                   => array( 'Версия' ),
+       'Wantedcategories'          => array( 'Требуемые_категории' ),
+       'Wantedfiles'               => array( 'Требуемые_файлы' ),
+       'Wantedpages'               => array( 'Требуемые_страницы' ),
+       'Wantedtemplates'           => array( 'Требуемые_шаблоны' ),
+       'Watchlist'                 => array( 'Список_наблюдения' ),
+       'Whatlinkshere'             => array( 'Ссылки_сюда' ),
 );
 
 $magicWords = array(
@@ -293,6 +333,51 @@ $magicWords = array(
        'url_query'               => array( '0', 'ЗАПРОС', 'QUERY' ),
 );
 
+
+$dateFormats = array(
+       'mdy time' => 'H:i',
+       'mdy date' => 'xg j, Y',
+       'mdy both' => 'H:i, xg j, Y',
+
+       'dmy time' => 'H:i',
+       'dmy date' => 'j xg Y',
+       'dmy both' => 'H:i, j xg Y',
+
+       'ymd time' => 'H:i',
+       'ymd date' => 'Y xg j',
+       'ymd both' => 'H:i, Y xg j',
+
+       'ISO 8601 time' => 'xnH:xni:xns',
+       'ISO 8601 date' => 'xnY-xnm-xnd',
+       'ISO 8601 both' => 'xnY-xnm-xnd"T"xnH:xni:xns',
+
+);
+
+$bookstoreList = array(
+       'Поиск по библиотекам «Сигла»' => 'http://www.sigla.ru/results.jsp?f=7&t=3&v0=$1',
+       'Findbook.ru' => 'http://findbook.ru/search/d0?ptype=4&pvalue=$1',
+       'Яндекс.Маркет' => 'http://market.yandex.ru/search.xml?text=$1',
+       'ОЗОН' => 'http://www.ozon.ru/?context=advsearch_book&isbn=$1',
+       'Books.Ru' => 'http://www.books.ru/shop/search?query=$1',
+       'Amazon.com' => 'http://www.amazon.com/exec/obidos/ISBN=$1'
+);
+
+/**
+ * Изменения сделанные в этом файле будут потеряны при обновлении MediaWiki.
+ *
+ * Если необходимо внести изменения в перевод отдельных строк интерфейса,
+ * сделайте это посредством редактирования страниц вида «MediaWiki:*».
+ * Их список можно найти на странице «Special:Allmessages».
+ */
+
+$separatorTransformTable = array(
+       ',' => "\xc2\xa0", # nbsp
+       '.' => ','
+);
+
+$fallback8bitEncoding = 'windows-1251';
+$linkPrefixExtension = false;
+
 $imageFiles = array(
        'button-bold'   => 'cyrl/button_bold.png',
        'button-italic' => 'cyrl/button_italic.png',
@@ -347,6 +432,7 @@ $messages = array(
 'tog-ccmeonemails' => 'Отправлять мне копии писем, которые я посылаю другим участникам',
 'tog-diffonly' => 'Не показывать содержание страницы под сравнением двух версий',
 'tog-showhiddencats' => 'Показывать скрытые категории',
+'tog-noconvertlink' => 'Отключить ссылку на преобразование заголовка',
 'tog-norollbackdiff' => 'Не показывать разницу версий после выполнения отката',
 
 'underline-always' => 'Всегда',
@@ -478,7 +564,7 @@ $messages = array(
 'searchbutton' => 'Найти',
 'go' => 'Перейти',
 'searcharticle' => 'Перейти',
-'history' => 'история',
+'history' => 'Ð\98стория',
 'history_short' => 'история',
 'updatedmarker' => 'обновлено после моего последнего посещения',
 'printableversion' => 'Версия для печати',
@@ -1006,7 +1092,7 @@ $2
 в окне редактирования. Правка была отменена для предотвращения искажения текста статьи.
 Подобные проблемы могут возникать при использовании анонимизирующих веб-прокси, содержащих ошибки.'''",
 'edit_form_incomplete' => "'''Некоторые части формы редактирования не достигли сервера. Внимательно проверьте, что ваши правки не повреждены, и попробуйте ещё раз.'''",
-'editing' => 'Редактирование: $1',
+'editing' => 'Редактирование $1',
 'creating' => 'Создание $1',
 'editingsection' => 'Редактирование: $1 (раздел)',
 'editingcomment' => 'Редактирование $1 (новый раздел)',
@@ -1272,14 +1358,14 @@ $1",
 
 # Diffs
 'history-title' => '$1 — история изменений',
-'difference-title' => 'Разница между пересмотров " $1 "',
-'difference-title-multipage' => 'Разница между страницами " $1 «и» $2 "',
+'difference-title' => '$1 — различия между версиями',
+'difference-title-multipage' => 'Разница между страницами «$1» и «$2»',
 'difference-multipage' => '(Различия между страницами)',
 'lineno' => 'Строка $1:',
 'compareselectedversions' => 'Сравнить выбранные версии',
 'showhideselectedversions' => 'Показать/скрыть выбранные версии',
 'editundo' => 'отменить',
-'diff-multi' => '({{PLURAL:$1|не показана $1 промежуточная версия|не показаны $1 промежуточные версии|не показаны $1 промежуточных версий}} {{PLURAL:$2|$2 участника|$2 участников|$2 участников}})',
+'diff-multi' => '({{PLURAL:$1|не показана $1 промежуточная версия|не показаны $1 промежуточные версии|не показаны $1 промежуточных версий}} {{PLURAL:$2|$2 участника|$2 участников}})',
 'diff-multi-manyusers' => '(не {{PLURAL:$1|показана $1 промежуточная версия|показаны $1 промежуточные версии|показаны $1 промежуточных версий}}, сделанные более чем $2 {{PLURAL:$2|участником|участниками}})',
 
 # Search results
@@ -1631,7 +1717,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|изменение|изменения|изменений}}',
 'recentchanges' => 'Свежие правки',
 'recentchanges-legend' => 'Настройки свежих правок',
-'recentchangestext' => 'Ниже в хронологическом порядке перечислены последние изменения на страницах {{grammar:genitive|{{SITENAME}}}}.',
+'recentchanges-summary' => 'Ниже в хронологическом порядке перечислены последние изменения на страницах {{grammar:genitive|{{SITENAME}}}}.',
 'recentchanges-feed-description' => 'Отслеживать последние изменения в вики в этом потоке.',
 'recentchanges-label-newpage' => 'Этой правкой была создана новая страница.',
 'recentchanges-label-minor' => 'Это незначительное изменение',
@@ -1658,7 +1744,7 @@ $1",
 'number_of_watching_users_pageview' => '[$1 {{PLURAL:$1|наблюдающий участник|наблюдающих участника|наблюдающих участников}}]',
 'rc_categories' => 'Только из категорий (разделитель «|»)',
 'rc_categories_any' => 'Любой',
-'rc-change-size-new' => 'Размер после изменения: {{PLURAL:$1|байт|байта|байт}}',
+'rc-change-size-new' => 'Размер после изменения: $1 {{PLURAL:$1|байт|байта|байт}}',
 'newsectionsummary' => '/* $1 */ новая тема',
 'rc-enhanced-expand' => 'Показать подробности (используется JavaScript)',
 'rc-enhanced-hide' => 'Скрыть подробности',
@@ -1836,14 +1922,15 @@ $1',
 'backend-fail-writetemp' => 'Не удалось записать во временный файл.',
 'backend-fail-closetemp' => 'Не удаётся закрыть временный файл.',
 'backend-fail-read' => 'Не удалось прочитать файл $1.',
-'backend-fail-create' => 'Не удалось создать файл $1.',
-'backend-fail-maxsize' => 'Не удалось создать файл $1, так как его размер превышает {{PLURAL:$2|$2 байт|$2 байта|$2 байт}}.',
+'backend-fail-create' => 'Не удалось записать файл $1.',
+'backend-fail-maxsize' => 'Не удалось записать файл $1, так как его размер превышает {{PLURAL:$2|$2 байт|$2 байта|$2 байт}}.',
 'backend-fail-readonly' => 'Хранилище «$1» сейчас находится в режиме «только чтение». Причина: «$2»',
 'backend-fail-synced' => 'Файл «$1» находится в несогласованном состоянии во внутреннем хранилище',
 'backend-fail-connect' => 'Не удалось подключиться к хранилищу «$1».',
 'backend-fail-internal' => 'Произошла неизвестная ошибка в хранилище «$1».',
 'backend-fail-contenttype' => 'Не удалось определить тип содержимого файла, чтобы сохранить его в «$1».',
 'backend-fail-batchsize' => 'Хранилище получило блок из $1 {{PLURAL:$1|файловой операции|файловых операций|файловых операций}}, ограничение составляет $2 {{PLURAL:$1|операцию|операции|файловых операций}}.',
+'backend-fail-usable' => 'Не удалось записать файл $1 из-за нехватки прав или отсутствия нужных папок.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Не удалось подключиться к базе данных журнала для хранилища «$1».',
@@ -1906,7 +1993,6 @@ $1',
 'http-curl-error' => 'Ошибка обращения к URL: $1',
 'http-host-unreachable' => 'Невозможно обратиться по указанному URL.',
 'http-bad-status' => 'Во время обработки HTTP-запроса обнаружена проблема: $1 $2',
-'http-truncated-body' => 'Тело запроса было получено лишь частично.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Невозможно обратить по указанному адресу.',
@@ -3034,12 +3120,20 @@ $1',
 'group-bureaucrat.css' => '/* Размещённый здесь CSS будет применяться только для бюрократов */',
 
 # Scripts
-'common.js' => '/* Размещённый здесь JavaScript код будет загружаться всем пользователям при обращении к каждой странице */',
-'standard.js' => '/* Размещённый здесь JavaScript код будет загружаться пользователям использующих тему оформления Standard */',
-'nostalgia.js' => '/* Размещённый здесь JavaScript код будет загружаться пользователям использующих тему оформления Nostalgia */',
-'cologneblue.js' => '/* Размещённый здесь JavaScript код будет загружаться пользователям использующих тему оформления Cologne Blue */',
-'monobook.js' => '/* Размещённый здесь JavaScript код будет загружаться пользователям использующих тему оформления MonoBook */',
-'vector.js' => '/* Указанный здесь JavaScript будет загружен всем участникам, использующим векторную тему оформления  */',
+'common.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */',
+'standard.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Standard */',
+'nostalgia.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Nostalgia */',
+'cologneblue.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Cologne Blue */',
+'monobook.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления MonoBook */',
+'myskin.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления MySkin  */',
+'chick.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Chick */',
+'simple.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Simple */',
+'modern.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Modern */',
+'vector.js' => '/* Размещённый здесь код JavaScript будет загружаться пользователям, использующим тему оформления Vector */',
+'group-autoconfirmed.js' => '/* Размещённый здесь код JavaScript будет загружаться только участникам, имеющим статус автоподтверждённых (autoconfirmed) */',
+'group-bot.js' => '/* Размещённый здесь код JavaScript будет загружаться только участникам, имеющим статус ботов (bots) */',
+'group-sysop.js' => '/* Размещённый здесь код JavaScript будет загружаться только участникам, имеющим статус администраторов (sysops) */',
+'group-bureaucrat.js' => '/* Размещённый здесь код JavaScript будет загружаться только участникам, имеющим статус бюрократов (bureaucrats) */',
 
 # Metadata
 'notacceptable' => "Вики-сервер не может предоставить данные в формате, который мог бы прочитать ваш браузер.<br />
@@ -3783,9 +3877,24 @@ $5
 'iranian-calendar-m11' => 'Бахман',
 'iranian-calendar-m12' => 'Эсфанд',
 
+# Hijri month names
+'hijri-calendar-m1' => 'Мухаррам',
+'hijri-calendar-m2' => 'Сафар',
+'hijri-calendar-m3' => 'Рабиуль-Аввал',
+'hijri-calendar-m4' => 'Раби ас-сани',
+'hijri-calendar-m5' => 'Джумада аль-уля',
+'hijri-calendar-m6' => 'Джумада ас-сани',
+'hijri-calendar-m7' => 'Раджаб',
+'hijri-calendar-m8' => 'Шаабан',
+'hijri-calendar-m9' => 'Рамадан',
+'hijri-calendar-m10' => 'Шавваль',
+'hijri-calendar-m11' => 'Зулькада',
+'hijri-calendar-m12' => 'Зуль-Хиджа',
+
 # Hebrew month names
 'hebrew-calendar-m1' => 'Тишрей',
 'hebrew-calendar-m2' => 'Хешван',
+'hebrew-calendar-m3' => 'Кислев',
 'hebrew-calendar-m4' => 'Тевет',
 'hebrew-calendar-m5' => 'Шват',
 'hebrew-calendar-m6' => 'Адар',
index 89422fc..21e3b28 100644 (file)
@@ -703,8 +703,8 @@ $2
 'userinvalidcssjstitle' => "'''Увага:''' Тема взгляду „$1“ не екзістує. Не забудьте, же хосновательске .css і .js файлы хоснують малы писмена, наприклад {{ns:user}}:{{BASEPAGENAME}}/vector.css, а не {{ns:user}}:{{BASEPAGENAME}}/Vector.css.",
 'updated' => '(Зміна уложена)',
 'note' => "'''Позначка:'''&nbsp;",
-'previewnote' => "'''Ð\9fамÑ\8fÑ\82айÑ\82е, Ð¶Ðµ Ñ\82о Ð»ÐµÐ¼ Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\97й Ð¿ÐµÑ\80еглÑ\8fд,
-текст іщі не є уложеный!'''",
+'previewnote' => "'''Ð\9fамÑ\8fÑ\82айÑ\82е, Ð¶Ðµ Ñ\82о Ð»ÐµÐ¼ Ð½Ð°Ð³Ð»Ñ\8fд.'''
+Зміны іщі не суть уложены!",
 'previewconflict' => 'Тот нагляд зображує текст так, як буде вызерати по уложіню сторінкы.',
 'session_fail_preview' => "'''Вашу пожадавку ся не подарило зпрацовати, бо были страчены дата сеансу.
 Просиме, спробуйте то зясь.
@@ -1326,7 +1326,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|зміна|зміны|змін}}',
 'recentchanges' => 'Послїднї зміны',
 'recentchanges-legend' => 'Можности послїднїх змін',
-'recentchangestext' => 'Слїдуйте послїднї зміны на {{grammar:genitive|{{SITENAME}}}}  на тій сторінцї.',
+'recentchanges-summary' => 'Слїдуйте послїднї зміны на {{grammar:genitive|{{SITENAME}}}}  на тій сторінцї.',
 'recentchanges-feed-description' => 'На тотїм каналу слїдуєте послїднї зміны на {{grammar:6sg|{{SITENAME}}}}.',
 'recentchanges-label-newpage' => 'Тым едітованём была створена нова сторінка',
 'recentchanges-label-minor' => 'Тото є мала зміна',
@@ -3468,4 +3468,14 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'api-error-uploaddisabled' => 'Начітаваня файлів є на тій вікі выпнуте.',
 'api-error-verification-error' => 'Файл є може пошкодженый, або мать плане росшырїня.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|секунда|секунды|секунд}}',
+'duration-minutes' => '$1 {{PLURAL:$1|минуту|минуты|минут}}',
+'duration-hours' => '$1 {{PLURAL:$1|година|годины|годин}}',
+'duration-days' => '$1 {{PLURAL:$1|день|днї|днів}}',
+'duration-weeks' => '$1 {{PLURAL:$1|тыждень|тыжднї|тыжднїв}}',
+'duration-years' => '$1 {{PLURAL:$1|рік|рокы|років}}',
+'duration-decades' => '$1 {{PLURAL:$1|декада|декады|декад}}',
+'duration-centuries' => '$1 {{PLURAL:$1|стороча|стороча|стороч}}',
+
 );
index 4189aa1..e7f611b 100644 (file)
@@ -1219,7 +1219,7 @@ $2
 'nchanges' => '$1 {{PLURAL:$1|परिवर्तनम्|परिवर्तनानि}}',
 'recentchanges' => 'सद्योजातानि परिवर्तनानि',
 'recentchanges-legend' => 'सद्योजातानां परिवर्तनानां विकल्पाः',
-'recentchangestext' => 'अस्मिन् विकियोजनायां सद्योजातानि परिवर्तनानि दर्श्यन्ताम्',
+'recentchanges-summary' => 'अस्मिन् विकियोजनायां सद्योजातानि परिवर्तनानि दर्श्यन्ताम्',
 'recentchanges-feed-description' => 'अस्मिन् विकियोजनायां सद्योजातानि परिवर्तनानि दर्श्यन्ताम्',
 'recentchanges-label-newpage' => 'एतस्मात् सम्पादनात् नूतनं पृष्ठं सृष्टमस्ति',
 'recentchanges-label-minor' => 'इदं लघु परिवर्तनम्',
index 3c4f9f0..e8c88ce 100644 (file)
@@ -716,7 +716,8 @@ IP-аадырыһа эрэ көстөр.
 'userinvalidcssjstitle' => "'''Болҕой:''' Бу тиэмэ «$1» суох. Кыттааччы .css и .js сирэйдэрэ кыра буукубаннан суруллуохтаахтар, холобур «{{ns:user}}:Ньургун/vector.css», маннык буолуо суохтаах «{{ns:user}}:Ньургун/Vector.css».",
 'updated' => '(Саҥардылынна)',
 'note' => "'''Хос быһаарыы:'''",
-'previewnote' => "'''Бу көрүү эрэ; уларытыылар бигэргэтиллэ иликтэр!'''",
+'previewnote' => "'''Бу барыллаан көрүү эрэ.'''
+Атын уларытыы бигэргэтиллэ илик!",
 'previewconflict' => 'Этот предварительный просмотр отражает текст в верхнем окне редактирования так, как он будет выглядеть, если вы решите записать его.',
 'session_fail_preview' => "'''Сиэрбэр сессия идентификаторын сүтэрэн кэбиһэн эн уларытыыгын кыайан киллэрбэтэ.
 Өссө холонон көр.
@@ -731,6 +732,7 @@ IP-аадырыһа эрэ көстөр.
 Итинник сыыһалар үксүн прокси-сиэрбэрдэри туһаннахха тахсааччылар.'''",
 'edit_form_incomplete' => "'''Уларытыы сорҕото сиэрбэргэ тиийбэтэ. Үчүгэйдик сыныйан көр, Эн уларытыыларыҥ туох да омсото суохтар дуо. Онтон өссө боруобалаа.'''",
 'editing' => 'Уларытыы $1',
+'creating' => 'Айарга $1',
 'editingsection' => 'Уларытыы $1 (раздел)',
 'editingcomment' => 'Уларытыы $1 (саҥа салаа)',
 'editconflict' => 'Уларытыы мөккүөрэ: $1',
@@ -1237,7 +1239,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 # Rights
 'right-read' => 'Сирэйдэри көрүү',
 'right-edit' => 'Сирэйдэри уларытыы',
-'right-createpage' => 'Сирэйдэри оҥоруу (ырытыы сирэйдэрин кытта холбуу)',
+'right-createpage' => 'Сирэйдэри оҥоруу (ырытыы сирэйдэриттэн ураты)',
 'right-createtalk' => 'Ырытыы сирэйдэрин оҥоруу',
 'right-createaccount' => 'Саҥа кыттааччыны бэлиэтээһин',
 'right-minoredit' => 'Уларытыыны кыра суолталаах курдук бэлиэтээ',
@@ -1343,7 +1345,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'nchanges' => '$1 {{PLURAL:$1|уларытыы|уларытыылар}}',
 'recentchanges' => 'Кэнники уларытыылар',
 'recentchanges-legend' => 'Кэлиҥҥи уларытыылар хайдах көстөллөрүн туруоруу',
-'recentchangestext' => 'Манна хаһан оҥоһуллубуттарынан сааһыланан {{SITENAME}} кэнники уларыытыылара көстөллөр.',
+'recentchanges-summary' => 'Манна хаһан оҥоһуллубуттарынан сааһыланан {{SITENAME}} кэнники уларыытыылара көстөллөр.',
 'recentchanges-feed-description' => 'Бу ботуокка биики бүтэһик уларыйыыларын кэтииргэ.',
 'recentchanges-label-newpage' => 'Бу уларытыы түмүгэр саҥа сирэй айыллыбыт.',
 'recentchanges-label-minor' => 'Бу улахан суолтата суох уларытыы',
@@ -1546,7 +1548,7 @@ $1',
 'backend-fail-writetemp' => 'Быстах кэмнээх билэҕэ суруйар табыллыбата.',
 'backend-fail-closetemp' => 'Быстах кэмнээх билэни сабар табыллыбата.',
 'backend-fail-read' => '$1 билэни ааҕар табыллыбата.',
-'backend-fail-create' => '$1 билэни оҥорор табыллыбата.',
+'backend-fail-create' => '$1 билэни суруттарар табыллыбата.',
 'backend-fail-readonly' => '«$1» сиэрбэр «ааҕыы эрэ» эрэсиимҥэ турар. Төрүөтэ: «$2»',
 'backend-fail-synced' => '«$1» билэ сөпсөһүллүбэтэх туруктаах эбит',
 'backend-fail-connect' => 'Маны кытта «$1» холбонор табыллыбата.',
index a6df523..d3b461a 100644 (file)
 
 $messages = array(
 # User preference toggles
+'tog-underline' => 'Joṛaoko latarre dag udugoḱma:',
+'tog-justify' => 'Olaḱ kạli mońjte sajao:',
 'tog-hideminor' => 'Nitaḱ bodolaḱre huḍiṅ kạmi danaṅme',
+'tog-hidepatrolled' => 'Joṛaoakanaḱko nãwã bodolaḱte danaṅkam',
+'tog-newpageshidepatrolled' => 'Biḍạakanaḱ sakamko nãwã sakamreaḱ talikare danȧkam',
 'tog-extendwatchlist' => 'Khạli nitoḱ bodolko do baṅ, joto bodolkodo ńeloḱ tạlikare phaylaomẽ.',
+'tog-usenewrc' => 'Cetan darja reaḱ nãwã bodolakanaḱko beoharme',
+'tog-numberheadings' => 'Mukhiạ kathako do actege piṛhipiṛhite sajaḱma',
+'tog-showtoolbar' => 'Joṛaoakanaḱ ṭulbar udugoḱma',
+'tog-editondblclick' => 'Bar dhao lin kate sakam torjomão reaḱ ạidari emogoḱma',
+'tog-editsection' => '[Joṛao] Pahaṭako do joṛao hotete aćtege hoyoḱ lạgit aidạri em ocoḱma',
+'tog-editsectiononrightclick' => 'Pahaṭa reaḱ pahaṭa guṭkathare jojom seć lin hotete <br /> pahaṭa sompadon lạgitte ektiạr em hoyoḱma (JavaScript)',
 'tog-showtoc' => 'Ṭibilre menaḱako ńel ( sakamkore 3 khon jạti hedlayenko)',
+'tog-rememberpassword' => 'Noa sendrare amaḱ boloḱ reaḱ katha (katha cạbi) disạimẽ (jạstite $1 {{PLURAL:$1din reaḱ din reaḱ}} lạgit)',
 'tog-watchcreations' => 'Sakamko songe  Ińaḱ ńelok tạlikare benao',
 'tog-watchdefault' => 'Sakam tońgey me Iń do ińaḱ ńeloḱ tạlikare joṛaokeda',
 'tog-watchmoves' => 'Sakamko tońgeyme Ińaḱ ńelok tạlikare kulme',
 'tog-watchdeletion' => 'Sakamko tońgeyme Ińaḱ ńeloḱ tạlika khon get́ giḍikam',
+'tog-minordefault' => 'Etohoṕre sanam joṛao purạoanaḱko do bekor unuduḱ lekate cinhạkma',
+'tog-previewontop' => 'Joṛao bakso purạo lahare unuduḱ hoyoḱma',
+'tog-previewonfirst' => 'Pạhil joṛao purạore unuduḱ hoyoḱma',
+'tog-nocache' => 'Brajar sakam reaḱ kasiṅ bondoemẽ',
 'tog-enotifwatchlistpages' => 'E-mailạńme one tinre in̕aḱ n̕eloḱ tạlika do bodolok',
 'tog-enotifusertalkpages' => 'E-mailạn̕me one tinre in̕aḱ roṛaḱ laṛcaṛ sakam do bodoloḱa',
 'tog-enotifminoredits' => 'E-mailạn̕me arhõ one tinre in̕aḱ sakamre huḍiń kạmi hoyoḱ',
+'tog-enotifrevealaddr' => 'Dhạrwạk reaḱ sakamre ińaḱ e-mail ṭhikạna sodor hoyoḱma',
 'tog-shownumberswatching' => 'Ńelok laṛcaṛkoaḱ songkha uduḱme',
 'tog-oldsig' => 'Menaḱ signạtar',
+'tog-fancysig' => 'Signạcar do wikiṭesk hisạbte moneyemẽ (jahan acte hoyoḱ joṛao bạgikate)',
+'tog-externaleditor' => 'Etohoṕre bahre reaḱ sompadonićaḱ beohar hoyoḱma (khali sẽṛa beoharić lạgit́te, kompeuṭare asokae seṭing jạruṛa. [//www.mediawiki.org/wiki/manual:External_editors More information.])',
+'tog-externaldiff' => 'Etohoṕre bahre reaḱ sompadonićaḱ beohar hoyoḱma (khali sẽṛa beoharić lạgit́te, kompeuṭare asokae seṭing jạruṛa. [//www.mediawiki.org/wiki/manual:External_editors More information.])',
+'tog-showjumplinks' => '"Calaḱmẽ" beohar joṛao ehop hoyoḱma',
 'tog-uselivepreview' => 'Jewet́ ńeloḱ beoharme (JavaScript jaruṛ menaḱa)',
+'tog-forceeditsummary' => 'Khạli sompadon guṭkatha em oktere iń baḍae ocoyiń hoyoḱma',
 'tog-watchlisthideown' => 'Ńeloḱ talikare ińaḱ joṛao kamiko danaṅme',
+'tog-watchlisthidebots' => 'Boṭreaḱ sompadon kạmiko do ńeloḱ tạlika khon danaṅmẽ',
 'tog-watchlisthideminor' => 'Ńeloḱ tạlikare ińak huḍiṅ joṛao kạmiko danaṅme',
+'tog-watchlisthideliu' => 'Ńeloḱ tạlikareaḱ ekaunṭ bolok beoharkoaḱ sompadon danaṅ hoyoḱma',
+'tog-watchlisthideanons' => 'Ńeloḱ tạlikare baṅ ńutamanić beoharićaḱ sompadonko danaṅ hoyoḱma',
+'tog-watchlisthidepatrolled' => 'Biḍạen sompadonko do ńeloḱ sakamre danaṅmẽ',
 'tog-ccmeonemails' => 'E-mail reaḱ kopy kulạńme Eṭaḱ laṛcaṛko kulakome',
+'tog-diffonly' => 'Farak reaḱ latar sakamre babotko baṅ udugoḱma',
+'tog-showhiddencats' => 'Danaṅ rokom sokomko uduḱmẽ',
+'tog-norollbackdiff' => 'rollback tayomte farak alom uduga',
 
 'underline-always' => 'Sanam okte',
 'underline-never' => 'Tis hõ ban̕',
+'underline-default' => 'Browjarre cetlekate em hoy akana',
+
+# Font style option in Special:Preferences
+'editfont-style' => 'Sompadon ṭhại reaḱ fonṭ sṭayel:',
+'editfont-default' => 'Sendra do sedaere ṭhikakana',
+'editfont-monospace' => 'Monoespeć fonṭ',
+'editfont-sansserif' => 'Sans-serif fonṭ',
+'editfont-serif' => 'Serif fonṭ',
 
 # Dates
 'sunday' => 'Aṭhowar',
@@ -95,36 +131,51 @@ $messages = array(
 'pagecategories' => '{{PLURAL:$1|Bivag|Bivagko}}',
 'category_header' => 'Sakam korenaḱ rokom sokom "$1"',
 'subcategories' => 'Huḍiń rokom sokomko',
+'category-media-header' => '"$1" babot reaḱ rokom sokomte emen meḍiya rẽtko',
+'category-empty' => '"Noa rokom sokom sakamre do nit jahan sakam se miḍiya rẽt do bạnuḱa."',
 'hidden-categories' => '{{PLURAL:$1|Dãnań renaḱ|Dãnań renaḱ ko}}',
+'hidden-category-category' => 'Uku akan rokom sokom ko',
 'category-subcat-count' => '{{PLURAL:$2| keṭagorire eken tayom hudińkeṭagori menaḱa. |Noa keṭagorire tayom menaḱa {{PLURAL:$1 hudińkeṭagoriko}}, jotokote $2}}',
+'category-subcat-count-limited' => 'Noa rokom sokomre latar reaḱ {{PLURAL:$1 gan kạṭic rokom sokom $1gan kạtic rokom sokom menaḱa}}',
 'category-article-count' => '{{PLURAL:$2| Noa keṭagoriredo eken tayomtenaḱ sakam menaḱa.| Tayom {{PLURAL:$2| sakam do |$1 sakamko kana}} nia keṭagorire, sanamkote  hoyoḱkana $2 .}}',
+'category-article-count-limited' => 'Noa {{PLURAL:$1 sakam sakamko}} rokom sokomre menaḱa.',
+'category-file-count' => '{{PLURAL:$2 Noa babot reaḱ rokom sokomre do eken latar reaḱ sakam menaḱa. Noa babot reaḱ rokom sokomre emakan moṭhe $2 gan sakam mudre {{PLURAL:$1 gan sakam $1 gan sakam}} latarre uduḱ hoena}}',
+'category-file-count-limited' => 'Latar reaḱ {{PLURAL:$1 rẽt rẽtko}} noa rokom sokomre menaḱa.',
 'listingcontinuesabbrev' => 'Calaḱa',
+'index-category' => 'Unuduḱ sakam ko do bạnuḱa',
 'noindex-category' => 'Unuduḱ sakamkodo bạnuḱa',
+'broken-file-category' => 'Baṅ kạmi daṛeaḱ chubi joṛao soho sakamko',
 
 'about' => 'Lạgitte, Lạgti',
+'article' => 'Menaḱakat́ sakam',
 'newwindow' => 'Nãwã khiṛki jhijme',
 'cancel' => 'Badme',
 'moredotdotdot' => 'Aema',
 'mypage' => 'In̕aḱ sakam',
 'mytalk' => 'Iñaḱ́ ro̠ṛ',
+'anontalk' => 'Nui baṅ ńutumanić beoharićaḱ galmarao sakam',
 'navigation' => 'Ñamme',
+'and' => '&#31;ar',
 
 # Cologne Blue skin
 'qbfind' => 'N̕am',
 'qbbrowse' => 'Sendra',
 'qbedit' => 'Tońge',
 'qbpageoptions' => 'Noa sakam',
+'qbpageinfo' => 'Sakam reaḱ thuti',
 'qbmyoptions' => 'In̕anḱ sakamko',
 'qbspecialpages' => 'Asokay teaḱ sakamko',
 'faq' => 'Baḍae kupuliko',
+'faqpage' => 'Project:FAQ',
 
 # Vector skin
 'vector-action-addsection' => 'Asol katha joṛaome',
 'vector-action-delete' => 'Giḍi',
-'vector-action-move' => 'Ocok',
+'vector-action-move' => 'Ocoḱ́me',
 'vector-action-protect' => 'Bańcao',
 'vector-action-undelete' => 'Bań getgiḍi',
 'vector-action-unprotect' => 'Bodol rukhiyạ',
+'vector-simplesearch-preference' => 'Arhõ jạsti sendra poramorso keṭećmẽ (khali vecṭor skinre lạgit)',
 'vector-view-create' => 'Tearme',
 'vector-view-edit' => 'So̠mpado̠n',
 'vector-view-history' => 'Jạṛ ńelme',
@@ -144,6 +195,7 @@ $messages = array(
 'searcharticle' => 'Calaḱme',
 'history' => 'Sakam reaḱ jạṛ',
 'history_short' => 'Jạṛ',
+'updatedmarker' => 'Ińaḱ mucạt hiripor khon nitaḱ halot',
 'printableversion' => 'Chapai lekan version',
 'permalink' => 'Terejuge joṛao',
 'print' => 'Chapa',
@@ -154,11 +206,13 @@ $messages = array(
 'create-this-page' => 'Noa sakam benao me',
 'delete' => 'muchau me',
 'deletethispage' => 'Noa sakam do get giḍikam',
-'undelete_short' => 'Baṅ get giḍik',
+'undelete_short' => 'Baṅ getgiḍilena {{PLURAL:$1 1ṭen joṛao $ joṛaoko}}',
+'viewdeleted_short' => '{{PLURAL:$1 gan ocoḱ sompadok $1 gan ocoḱ sompadon}} udugmẽ',
 'protect' => "banchao'",
 'protect_change' => 'Judạ',
 'protectthispage' => 'Noa sakam ban̕caome',
 'unprotect' => 'Bodol ban̕cao',
+'unprotectthispage' => 'Noa sakam reaḱ rukhiyạ bodolmẽ',
 'newpage' => 'Nãwã sakam',
 'talkpage' => 'Noa sakam galmaraome',
 'talkpagelinktext' => 'Ro̠ṛme',
@@ -173,22 +227,31 @@ $messages = array(
 'projectpage' => 'Porjakṭ sakam uduḱme',
 'imagepage' => 'Rẽt sakam uduḱme',
 'mediawikipage' => 'Mesag sakam uduḱme',
+'templatepage' => 'Ṭempleṭ sakam udugmẽ',
 'viewhelppage' => 'Goṛoaḱ sakam n̕elme',
+'categorypage' => 'Babot reaḱ rokom sokom udugmẽ',
 'viewtalkpage' => 'Galmarao ńelme',
 'otherlanguages' => 'Eṭagak pạrsi',
 'redirectedfrom' => '$1 khon ạcur heć akana',
 'redirectpagesub' => 'Bań sojhe sakam',
 'lastmodifiedat' => 'Noa sakam do sạjao hoena $1, $2 te',
+'viewcount' => 'Noa sakamdo {{PLURAL:$1 dhom $1 dhom}} udug hoena.',
 'protectedpage' => 'Rukhíạ sakamko',
 'jumpto' => 'Calaḱme :',
 'jumptonavigation' => 'Ñamme',
 'jumptosearch' => 'Sendra',
+'view-pool-error' => 'Ikạkańmẽ, sarvarre nitoḱ do aḍi cap menaḱa.
+Ạḍi aema beoharko noa sakam ńel lạgit́ko kurumuṭueda.
+Nãwate noa sakam ńel kurumuṭuy lạgit́te dayakate mit́ghạṛi tạṅgiymẽ.
+$1',
 'pool-timeout' => 'Somoy paromena cạbi lạgit́te tạṅgi hoyoḱkana',
+'pool-queuefull' => 'Pul reaḱ sakam perećena',
 'pool-errorunknown' => 'Bań baḍayaḱ bhul',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => 'babo̠tre',
 'aboutpage' => 'Project: Babo̠t',
+'copyright' => '$1 re bhitrire ńamoḱa.',
 'copyrightpage' => '{{ns:project}}: Eḱteạr',
 'currentevents' => 'Cạlit ghoṭnako',
 'currentevents-url' => 'Project: Nitaḱ evenṭ ko',
@@ -205,6 +268,13 @@ $messages = array(
 'privacy' => 'Nijaḱ eḱtear',
 'privacypage' => 'Project: Nijaḱ eḱteạr',
 
+'badaccess' => 'Ektiạr vul',
+'badaccess-group0' => 'Am do oka kạmi lạgit́em aroj akat́, ona kạmi purạo lạgit́te ạidạri do bạnuḱa.',
+'badaccess-groups' => 'Am do oka kạmim menjoṅkan ona do khạli {{PLURAL:$2 rạsiạkore noa rạsiạreaḱ mit́ṭenre}} mitṭen beoharić sompadon daṛeyaḱa: $1.',
+
+'versionrequired' => 'Meḍiawiki reaḱ $1 nãwã aroe jạruṛa',
+'versionrequiredtext' => 'Noa sakam do beohar lạgit́te meḍiawikire $1 nambar nãwã araoe jạruṛa. [[Special:Version nãwã aroe sakam]] ńelmẽ.',
+
 'ok' => 'Ṭhik gea',
 'retrievedfrom' => '"$1" khon ñam ạgui',
 'youhavenewmessages' => 'Amaḱ do $1 ($2) menaḱa',
@@ -215,20 +285,26 @@ $messages = array(
 'editold' => 'So̠mpado̠n',
 'viewsourceold' => 'Ńamoḱ jayga',
 'editlink' => 'Tońge',
-'viewsourcelink' => '̕Ńel renaḱ ḍahar',
+'viewsourcelink' => 'vitrireaḱ́ jo̠to̠ ńelme',
 'editsectionhint' => 'Sapṛao dhara: $1',
 'toc' => 'Menaḱaḱko',
 'showtoc' => 'Uduḱme',
 'hidetoc' => 'uku, Danaṅ',
 'collapsible-collapse' => 'Murchạo caba',
 'collapsible-expand' => 'Phaylao',
-'thisisdeleted' => 'Ńel se nãwã aroe hoyuka?',
+'thisisdeleted' => '$1 Ńel se nãwã aroe hoyukma?',
 'viewdeleted' => '$1 Ńelme',
+'restorelink' => '{{PLURAL:$1 mit́ṭen ocoḱgiḍi sompadon $1 gan udug giḍi sompadon}}',
 'feedlinks' => 'Jom oco',
-'site-rss-feed' => 'RSS jom oco',
+'feed-invalid' => 'Garhak feed reaḱ rokom do ạnlekate baṅkana',
+'feed-unavailable' => 'Sinḍikason feed do baṅ ńamoḱkana',
+'site-rss-feed' => '$1 RSS feed',
 'site-atom-feed' => ' $1 Jom oco',
+'page-rss-feed' => '"$1" RSS feed',
 'page-atom-feed' => '"$1" khon khudri jom',
 'red-link-title' => '$1 (niạ sakamdo bạnuḱa)',
+'sort-descending' => 'Ulṭạo horop lekate sajao',
+'sort-ascending' => 'Horop lekate sajao',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Sakam',
@@ -244,56 +320,103 @@ $messages = array(
 
 # Main script and global functions
 'nosuchaction' => 'Noṅkanaḱ kạmi bạnuḱa',
+'nosuchactiontext' => 'Noa URL re goṭa akan kạmi do ạnlekate baṅkana.
+Am do paseć mit́ṭen vul joṛaoem emakada se URL oltem vul akada.
+Noa do noṅkanaḱ menkana je {{SITENAME}} sayeṭre beoharen sofṭower re mit́ṭen vul menaḱa.',
 'nosuchspecialpage' => 'Noṅkanaḱ asokay sakam do banuḱa',
+'nospecialpagetext' => '<strong>Am do mit́ṭen beạn asokae sakamem koe akada.</strong>
+[[Special:SpecialPages {{int:specialpages}}]]-re ạnte asokae sakamkore mit́ṭen tạlikam ńama.',
 
 # General errors
 'error' => 'bhul',
+'databaseerror' => 'Ḍaṭabase vul',
+'dberrortext' => 'Database query syntexre vul hoeakana.
+Sofṭoyerre jahan bag karonte noa do hoe daṛeyaḱa.
+Joto khon mucạt́ database query do tahẽkana noṅka:
+<blockquote><tt>$1<//tt><blockquote>
+"<tt>$2</tt>" bhitrire tahẽna.
+Database okaṭaḱ vule em akada:"<tt>$3: $4</tt>".',
+'dberrortextcl' => 'Ḍaṭabes query sintxexṭre vul hoeakana.
+Mucạt́ ḍaṭabes query do tahẽkana:
+"$1"
+"$2" faṅson reaḱ bhitri khon.
+Ḍatabes okaṭaḱ vule kulakaḱ: "$3: $4:',
 'laggedslavemode' => "'''Sontoroḱme:''' sakamre do nahaḱ nãwãnaḱko paseć bạnuḱa.",
-'missing-article' => '"$1" $2 noa ńutumanaḱ sakhiyaxt sakamre olakanaḱ do bań ṅamoka.
-Noa hoy renaḱ karon do hoyoḱkana cabak tạrik pharak se noare joṛao sakam do get giḍi akana.
-Judi noa do karon bań hoylen khan, noa do am sopṭoyer re kạtictem ńam daṛeyaḱa.
+'readonly' => 'Ḍaṭabes do talagea',
+'enterlockreason' => 'Cạbie reaḱ karon do cet́kana ma lạimẽ, Saõte tinre tala cạbim jhija ona okte hõ lạimẽ',
+'readonlytext' => 'Nãwã hataen ar eṭagaḱ sompadon lạgit́te ḍaṭabes do nit bondo gea. Paseć ḍaṭabes rukhiyạre niyom lekate kạmi calaḱ kana. Thoṛa ghạrịić porte laha obosthare acur hạjuḱa.
+Sasetić do noa kathae roṛ keda: $1',
+'missing-article' => '"$1" $2 noa ńutumanaḱ sakhiyạ̣t sakamre olakanaḱ do bań ṅamoka.
+Noa hoy renaḱ karon do hoyoḱkana cabak tạrik pharak se noare joṛao sakam do get́ giḍi akana.
+Judi noa do karon bań hoylen khan, noa do am sopṭoyer re kạtićtem ńam daṛeyaḱa.
 Daya katet́ noa do nonde [[Special:ListUsers/sysop|administrator]],  ṭhen lạime, URL hotete.',
 'missingarticle-rev' => '(Nãwã aro#: $1)',
 'missingarticle-diff' => '(Pharak: $1, $2)',
+'readonly_lag' => 'Ḍaṭabes do aćhote tege bondo hoe akana, je lekate udhin reaḱ ḍaṭabes sarvarkor mukhiạ ḍaṭabes sarvar lekate heć daṛeaḱ.',
 'internalerror' => 'Bhitri reaḱ bhul',
-'internalerror_info' => 'Bhitri reaḱ bhul:',
-'filedeleteerror' => '1 sakam do baṅ get́ giḍiḱ lena',
+'internalerror_info' => 'Bhitri reaḱ vul: $1',
+'fileappenderrorread' => 'Jońṛao oktere "$1" baṅ paṛhaolena.',
+'fileappenderror' => '"$1" do "$2" saõte joṛao baṅ ganoḱ kana.',
+'filecopyerror' => '"$1" rẽt khon "$2" rẽt baṅ kopilena.',
+'filerenameerror' => '"$1" rẽt reaḱ ńutum bodol kate "$2" em baṅ hoyoḱ kana.',
+'filedeleteerror' => '$1 sakam do baṅ get́ giḍiḱ lena',
+'directorycreateerror' => '"$1" dayrekṭori do baṅ tearlena.',
+'filenotfound' => '"$1" rẽt do baṅ sendra ńamoḱ kana.',
+'fileexistserror' => '"$1" rẽtre baṅ oloḱ kana: Rẽt do lahare menaḱa.',
+'unexpected' => 'Baṅ asakan mạn: "$1"="$2".',
+'formerror' => 'Vul: forom do baṅ jimạlena.',
 'badarticleerror' => 'Noa sakamre kạmiko do baṅ puraolena.',
-'cannotdelete' => 'Nao sakam se rẽt do baṅ get giḍilena.
-Noa do pasec eṭaḱ hoṛ hotete lahare get giḍi akana.',
-'cannotdelete-title' => 'Sakam do baṅ get giḍiḱkana',
+'cannotdelete' => '$1 sakam se rẽt do baṅ get giḍilena.
+Pasec eṭaḱ hoṛ noa do lahareko get giḍi akada.',
+'cannotdelete-title' => '"$1" Sakam do baṅ get giḍiḱkana',
 'badtitle' => "barich' bishó́́́́y",
 'badtitletext' => 'Amaḱ nehorakaḱ sakam ńutum do bań puraoa, bạnuka, se be sudhrạo joṛao bhitri katha se bhitri wiki ńutum.
 Noa re do mit se aema bisó menaḱa oka do ńutumre bań beoharok.',
-'viewsource' => 'Ńamoḱaḱ ńelme',
+'querypage-no-updates' => 'Noa sakam reaḱ nahaḱ halot bondo gea. Nonḍe doho akana ḍaṭako do baṅ saphaḱa.',
+'wrong_wfQuery_params' => 'wfQuery ()-re vul perameṭar em hoeakana<br />
+Fańson: $1<br />
+Query: $2',
+'viewsource' => 'Vitrireaḱ ńelme',
+'viewsource-title' => '$1 renaḱ ńamoḱ ṭhại ńelmẽ',
+'actionthrottled' => 'Kạmi reaḱ dhara bại',
 'protectedpagetext' => 'Noa sakam do ol toṅge lạgit́te do bańcao gea.',
+'viewsourcetext' => 'Noa sakam do am ńel ar ńamoḱaḱ ṭhạiem kopi hatao daṛeaḱa:',
+'viewyourtext' => "Am do '''Amaḱ sompadon''' noa sakam ńel arem kopi hatao daṛeaḱa:",
+'protectedinterface' => 'Noa sakam reaḱ babotko do wiki sofṭoyer reaḱ mit́ṭen inṭarfes khobore ema, onate noa do rukhiyạ doho hoeakana.',
+'sqlhidden' => '(SQL query do ukure menaḱa)',
+'cascadeprotected' => 'Noa sakam do sompadon khon rukhiyạre menaḱa, karon sakam do latar reaḱ {{PLURAL:$1 gan sakam reaḱ gan sakam reaḱ}} bhitrire, oka sakam do (cascading) te rukhiyạ menaḱa:
+$2',
 'namespaceprotected' => "Amaḱ do sakamko joṛao lạgit́te ạidạri banuḱ tama '''$1''' ńutumjayga.",
 'ns-specialprotected' => 'Asokay teaḱ sakamkodo baṅ oltoṅgea.',
 
 # Virus scanner
+'virus-badscanner' => 'Vul konfigareson: baṅ orom vairas skenar: "$1"',
 'virus-scanfailed' => 'Esken baṅ hoelena (Code $1)',
 'virus-unknownscanner' => 'Baṅ urum anṭvayras:',
 
 # Login and logout pages
-'welcomecreation' => '==Johar,==
+'welcomecreation' => 'Johar, $1!
 Amaḱ ekaunṭ do tearena.
-Amaḱ [Asokaete:Pasindko {{SITENAME}} pasindko]] bodol alom hiṛińa.',
+Menkhan amaḱ [[Special:Preferance {{SITENAME}} pạsindko]] thir dohoe lạgit́te alom hiṛińa.',
 'yourname' => 'Beoboharicaḱ ńutum',
 'yourpassword' => 'Uku namber',
 'yourpasswordagain' => 'Arhõ oku namber olme',
-'remembermypassword' => 'In̕aḱ boloḱaḱ disạyme',
+'remembermypassword' => 'Mitṭen khon bạṛti khata reaḱ cạbi disạ dohoḱma (Jạsti $1 {{PLURAL:$1 din reaḱ din reaḱ}} lạgit)',
 'securelogin-stick-https' => 'Bhitri bolo kate HTTPS re soṅge tãhenme',
+'yourdomainname' => 'Amaḱ ḍomen:',
+'externaldberror' => 'Hoe daṛeyaḱa jahan bahre reaḱ jacaeaḱ ḍaṭabes vul hoeakana se amaḱ bahre reaḱ ekaunṭ do nahaḱ halot aguire ạidạri bạnuḱa.',
 'login' => "bolok' duar",
 'nav-login-createaccount' => 'Boloḱ́ duạr / ekaunt tearme',
+'loginprompt' => '{{SITENAME}}-re boloḱem meneḱ khan amaḱ sendrare kuki kạmi ehoṕ hoyoḱtama.',
 'userlogin' => 'Bhitri bolon / ekaunṭ tear',
 'userloginnocreate' => 'Bhitri bolo',
 'logout' => 'Bahre oḍoń',
 'userlogout' => 'Bahre oḍoń',
 'notloggedin' => 'Bhitri baṅ bolokana',
-'nologin' => 'Ekaunṭ bạnuḱtama?',
+'nologin' => "Amaḱ do cet́ wikipeḍiare ekaunṭ banuḱtama? Ado '''$1'''",
 'nologinlink' => 'account tear me',
 'createaccount' => 'Ṭhai benaome',
-'gotaccount' => 'Ekaunṭ menaḱgeya?',
+'gotaccount' => 'Amaḱ do cet́ miṭten ekaunṭ tear menaḱtama? $1 tearmẽ.',
 'gotaccountlink' => 'Bhitri bolon',
 'userlogin-resetlink' => 'Amaḱ boloḱ talam cạbi sanamem hiṛińkeda?',
 'createaccountmail' => 'E-mail hotete',
@@ -302,9 +425,19 @@ Amaḱ [Asokaete:Pasindko {{SITENAME}} pasindko]] bodol alom hiṛińa.',
 'userexists' => 'Laṛcaṛicaḱ ńutum em hoyena ona do beohar hoyakana.
 Dayakatet́ eṭagaḱ ńutum bachaome.',
 'loginerror' => 'Bhitri bolok do vulgea',
-'createaccounterror' => 'Ekaunṭ do baṅ benao lena:',
+'createaccounterror' => 'Ekaunṭ do baṅ tear lena: $1',
+'nocookiesnew' => 'Beoharićaḱ ekaunṭ tear hoe akana, menkhan am do nit hạbićte ekaunṭre bam boloakana. {{SITENAME}} re kuki beohar kate beoharićaḱ ekaunṭre boloa.
+Amaḱ sendrare kukiko bondo hoeakana. Dayakate kukiko kạmi hoe ocoemẽ ar amaḱ nãwã beohar ńutum ar uku nambar beohar hotete noa ekaunṭre boloḱmẽ.',
+'nocookieslogin' => '{{SITENAME}} re kuki hotete beoharićaḱ bhitri boloḱ do hoyoḱa. Amaḱ sendrare kuki bondo menaḱa. Kuki cạlu kate arhõ kurumuṭuimẽ.',
+'nocookiesfornew' => 'Beoharićaḱ ekaunṭ do baṅ tear akana, Cedaḱ je noa ńamoḱ jaega babote ale do bale uruma.
+Ale do baḍae ocolem amaḱ kuki doe kạmikana, sakam do arhõ rakaṕ lạgit́te kurumuṭuemẽ.',
+'noname' => 'Am do asol beoharićaḱ ńutum ṭhikte bam emakada.',
 'loginsuccesstitle' => 'Bhitri boloḱ do moctege puraoena',
-'loginsuccess' => "'''Am do nitoḱ bolo menama {{SITENAME}} re",
+'loginsuccess' => '\'\'\'Am do nitge "$1" ńutumte {{SITENAME}} rem bolo akana.',
+'nosuchuser' => '"$1" ńutumte jahan beoharko bạnuḱkoa.
+Beoharićaḱ ńutum do bukṛogea.
+Amaḱ bananko ńelmẽ, se [[Special:Userlogin/signup nãwã mit́ṭen ekaunṭ tearmẽ]].',
+'nosuchusershort' => '"$1" ńutuman jahãe beoharko do banuḱkoa. Ńutum reaḱ banan biḍaomẽ.',
 'nouserspecified' => 'Am do pusṭaote laṛcaṛićaḱ ńutum em hoyoḱtama.',
 'login-userblocked' => 'Nui laṛcaṛic doe esetgea. bhitri boloḱ ạidạri bań emoḱ kana.',
 'wrongpassword' => 'Bań milaoaḱ oku nambar em hoyakana.
@@ -316,18 +449,27 @@ Daya katet́ arhõ kurumuṭuyme.',
 'password-login-forbidden' => 'Noa laṛcaṛicaḱ ńutum ar oku nambar do ạnlekate baṅkana.',
 'mailmypassword' => 'E-mail reaḱ nãwã uko katha',
 'passwordremindertitle' => 'Nãwã nitlạgit oku nambar {{SITENAME}} lạgit́te',
-'noemail' => 'Nonḍe do laṛcaṛlạgit́te jahan oku nambar sap doho bạnuḱa.',
+'noemail' => '"$1" beoharić lạgit́te do jahan e-mail ṭhikana rukhiyạ doho bạnuḱa.',
 'noemailcreate' => 'Am do mitṭen jewet e-mail ṭhikạna em jaruṛ menaḱtama.',
 'passwordsent' => '"$1" ṭhikạnate resṭariyen e-mail lạgit́te mitṭen oku nambar em hoyena.
 Daya kate ńam porte arhõ bhitri boloḱme.',
-'mailerror' => 'Vulte kulakan mail:',
+'blocked-mailpassword' => 'Amaḱ IP ṭhikạna khon sompadon do bondo menaḱa, Onate noa ṭhikạna baṅ beohar kate uku nambar ruạṛ baṅ hoyoḱa.',
+'mailerror' => 'E-mail kulte eṭkẽṭõrẽ: $1',
+'emailauthenticated' => 'Amaḱ e-mail ṭhikạna do $2 tạrikh reaḱ $3 re jạhirena.',
+'emailnotauthenticated' => 'Amaḱ e-mail reaḱ ṭhikạna do <strong> nit hõ baṅ jacay akana</strong> latar reaḱ features lạgit́te jahan e-mail do baṅkuloḱa.',
+'noemailprefs' => 'Noa features ko kạmie ocoy lạgit́te mit́ṭen e-mail ṭhikạna dohoe hoyoḱa.',
 'emailconfirmlink' => 'Amaḱ e-mail ṭhikana do sạriyme.',
+'invalidemailaddress' => 'Noa e-mail ṭhikạna do baṅ hataoa, karon noa formeṭ do pusṭạote baṅ em akana. Dayakate pusṭao formeṭte ṭhikạna emmẽ, se khet do khạliemẽ.',
 'cannotchangeemail' => 'Ekaunṭ e-mail ṭhikạnakodo noa wiki re baṅ bodoloḱ kana.',
+'emaildisabled' => 'Noa sayeṭre do e-mail em subita bạnuḱa.',
 'accountcreated' => 'Ekaunṭ do teyarena',
 'accountcreatedtext' => '$1 lạgit́te ekaunṭ do benaoena.',
 'createaccount-title' => '{{SITENAME}} lạgit́te ekaunṭ benao',
 'createaccount-text' => 'Okoe co am lạgit́te mitṭen ekaunṭko amaḱ e-mail ṭhikạna lạgit {{SITENAME}} re ($4) ńutum "$2", oku nambar "$3".
 Am do mesagem baṅ daṛeyaḱa, judi noa ekaunṭ do vulge benaolen khan.',
+'usernamehasherror' => 'Beoharićaḱ ńutumre hes horop baṅ tahẽdaṛeaḱa',
+'login-throttled' => 'Am do mitghạri lahare por por aema dhao boloḱem kurumuṭu keda.
+Arhõ kurumuṭue lahare dayakate thoṛagan tạṅgiemẽ.',
 'login-abort-generic' => 'Amaḱ bhitri boloḱ do baṅ hoylena - batena.',
 'loginlanguagelabel' => 'katha: $1',
 
@@ -344,12 +486,20 @@ Nitoḱ do am bhitritem boloḱkana...',
 'resetpass-no-info' => 'Noa sakam sojhete laṛcaṛ lạgit́te am do bhitri boloḱ hoyoḱtama.',
 'resetpass-submit-loggedin' => 'Oku namber bodol',
 'resetpass-submit-cancel' => 'Bạgi',
+'resetpass-temp-password' => 'Nit lạgit uku nambar:',
 
 # Special:PasswordReset
 'passwordreset' => 'Nãwãte oku nambar emme',
+'passwordreset-text' => 'Amaḱ ekaunṭ reaḱ purapuri thuti e-mail hotete ńam lạgit́te latar reaḱ forom purạomẽ.',
 'passwordreset-legend' => 'Nãwãte oku nambar emme',
+'passwordreset-disabled' => 'Noa wikire amaḱ uku nambar nãwãte em lạgit subita do bando gea.',
+'passwordreset-pretext' => '{{PLURAL:$1 latar re menaḱ ḍaṭako khon mit́ṭen emmẽ}}',
 'passwordreset-username' => 'Beoharicaḱ ńutum:',
+'passwordreset-domain' => 'Ḍomen:',
+'passwordreset-capture' => 'Sendra fol reaḱ e-mail ńelmẽ?',
+'passwordreset-capture-help' => 'Am do judi noa jacạy baksom lin lekhan, tobe nit lạgit́te em akan uku nambar são mit́ṭen e-mail ame uduḱama ar ona sãote beoharić ṭhen ona kuluḱa.',
 'passwordreset-email' => 'E-mail ṭhikạna:',
+'passwordreset-emailtitle' => '{{SITENAME}} sayeṭre beoharićaḱ purạo thutiko',
 'passwordreset-emailelement' => 'Beoharicaḱ ńutum:
 Nit lạgit oku nambar:',
 'passwordreset-emailsent' => 'Mitṭen disạ ruaṛ e-mail do kulena.',
@@ -375,7 +525,7 @@ Nit lạgit oku nambar:',
 'link_sample' => 'Joṛaotet́ reaḱ bohoḱ',
 'link_tip' => 'Bhitri reak joṛaotet́',
 'extlink_sample' => 'http://www.nạmuna.makaṛgạṭi ạmạli',
-'extlink_tip' => 'Baherenaḱ jońṛao (disạyme htt://prefix)',
+'extlink_tip' => 'Baherenaḱ jońṛao (disạyme http://prefix)',
 'headline_sample' => 'Bohok katha',
 'headline_tip' => 'level 2 guḍkatha',
 'nowiki_sample' => 'Begor format olko bhoraome',
@@ -390,7 +540,7 @@ Nit lạgit oku nambar:',
 'subject' => 'Bisoy/Bohoḱ katha:',
 'minoredit' => 'Noa do hudiń joṛao kami',
 'watchthis' => 'Noa sakam ńelme',
-'savearticle' => 'Sakam sebhme',
+'savearticle' => 'Sakam dohoeme',
 'preview' => 'Ńel, Unuduḱ',
 'showpreview' => 'Unuduḱ',
 'showlivepreview' => 'Jewet uduk',
@@ -398,10 +548,18 @@ Nit lạgit oku nambar:',
 'anoneditwarning' => "'''Sabdhan:''' amdo begor logkatem bolowakana.
 Amaḱ IP ṭhikana do noa sakam sompadon jạṛre rekorḍoḱa.",
 'anonpreviewwarning' => '"Am do bhitri bam bolo akana. Noa sakamre amaḱ kạmiko jạre IP ṭhiikạ̣nare rukhiyạ ḱa."',
+'summary-preview' => 'Guṭ katha unuduḱ:',
+'subject-preview' => 'Babot/Guṭkatha unuduḱ:',
+'blockedtitle' => 'Beoharić doe eset ocoakana.',
+'loginreqlink' => 'Bhitri boloḱ',
+'loginreqpagetext' => 'Eṭagaḱ sakamko ńel lạgit́te do am $1 hoyoḱ jạruṛtama.',
+'accmailtitle' => 'Uku nambar do kulena.',
+'accmailtext' => '[[User talk:$1 $1]] lạgit́te aćte benaoen uku nambar do $2 kul hoena.
+Bhitri bolo kateḱ noa nãwã ekaunṭ lạgit uku nambar "[[Special:ChangePassword Change password]]" sakam khonem bodol daṛyakya.',
 'newarticle' => '(Nãwa)',
-'newarticletext' => 'Am do okaṭaḱ somporko sakamem pańjayetkan ona do nito hạbic banuka.
-Sakam benao lạgitte, noa latar baksore ol ehoṕme
-Am do judim vul lekahan, amaḱ sendray jaygare "ruạṛ" baṭon linme.',
+'newarticletext' => "Am do oka mitṭen joṛaoem pańja akada, onaṭak do bạnuḱa.
+Ona sakam tear lạgit́te, latar reaḱ baksore ol ehoṕmẽ (arhõ jạsti baḍae lạgit́te [[{{mediaWiki:Helppage}}help page]] pańjaemẽ).
+Am do judi nonḍe vulkatem heć akan khan, tobe amaḱ sendrakore '''back''' baṭon linmẽ.",
 'noarticletext' => 'Nitoḱ noa sakamre do ol bạnuḱa.
 
 You can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,
@@ -411,37 +569,67 @@ or [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this page]</span>.',
 
 You can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,
 or <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>.',
-'previewnote' => "'''Disạyme noa do eken ńeln̕am lạgit.'''
-Amaḱ bodolaḱ kodo nit habićte bań ban̕cao akana!",
+'userpage-userdoesnotexist' => '"<nowiki>$1</nowiki>" ńutuman jahãe beoharićaḱ ekaunṭ do baṅ resṭri hoeakana. Daya kate biḍạo katet́ ńelmẽ noa sakam do benoa/sompadonem menet́ kana se baṅ.',
+'userpage-userdoesnotexist-view' => 'Beoharićaḱ "$1" ekaunṭ do baṅ resṭire akana.',
+'blocked-notice-logextract' => 'Nui beoharić do nitoḱe esetgea.
+Refarens lạgit́te nahaḱ boloḱ do latare em hoena:',
+'updated' => '(Halot ruaṛ)',
+'note' => "'''Noṭ:'''",
+'previewnote' => "'''kheyalmẽ, noa do eken ńeloḱ lạgit.'''
+Amaḱ bodolaḱ kodo nit habićte bań rukhíạakana!",
 'continue-editing' => 'Toṅge calaḱkana',
-'editing' => 'Sampadon; joṛao',
+'editing' => 'Joṛao do purạena: $1',
 'creating' => 'Benao',
 'editingsection' => 'Joṛao $1 (hạṭiń)',
 'editingcomment' => 'Joṛao',
+'editconflict' => 'Sompadon reaḱ bene bạiri: $1',
 'yourtext' => 'Amaḱ ol',
-'templatesused' => 'Noa sakamre beoharen phormat se phormatko',
+'storedversion' => 'Rukhiyạ nãwã aroe',
+'nonunicodebrowser' => "'''Sontoro: Amaḱ sendra reaḱ eunikoḍ-gate sompok baṅ kana. Am do je lekate apod baṅ hoe kate noam sompadon daṛeaḱ, ona lạgit́ somadhan menaḱa: baṅaski karecṭarko do heskaḍesimal koḍ hisạbte udug hoyoḱa.'''",
+'yourdiff' => 'Farak',
+'templatesused' => 'Noa sakamre beoharen {{PLURAL:$1 ṭempeleṭ ṭempeleṭko}}:',
 'template-protected' => 'Rukhiạ',
 'template-semiprotected' => '(Kạṭic-rukhiyạ)',
-'hiddencategories' => 'Noa sakam do mitṭen hoṛkanay',
-'permissionserrorstext-withaction' => 'Amaḱ do aydạri bạnuḱtama, Noa karon pan̕jay lạgitte',
+'hiddencategories' => 'Noa sakam do {{PLURAL:$1 1 ukuakan bhag $1 uku akan bhagkorenaḱ}} gaõtarenge:',
+'nocreate-loggedin' => 'Nãwã sakam tear lạgit́te am do ạidạri em baṅ hoeakana.',
+'sectioneditnotsupported-title' => 'Pahaṭa sompadona do bae hataoeda',
+'sectioneditnotsupported-text' => 'Noa sompadona sakamre pahaṭa sompadona do bae hataoeda',
+'permissionserrors' => 'Ạidạri vulko',
+'permissionserrorstext' => 'Noa kạmi amaḱ ạidạri do banuḱa, {{PLURAL:$1 gan karon reaḱ gan karon reaḱ}} lạgit:',
+'permissionserrorstext-withaction' => 'Amaḱ $2 kạmire ạydạri do bạnuḱa, Ona reaḱ {{PLURAL:$1 Karon/ Karonko}}:',
 'recreate-moveddeleted-warn' => "'''Sontorokme: am do arhõ doṛhate sakamem teyareda oka do sedayre get giḍiyen.
 Am do gunạnme cet́ noa joṛao kạmi am lạgit́te ganoḱ ase bań.
 Noa get ar tala ocok sakam nonḍe em hoyena dhok lagit́te.",
 'moveddeleted-notice' => 'Noa sakam do get giḍiyakana.
 Get ar ocoḱ giḍi sakam do latarre emakan reference lạgit em hoena.',
+'log-fulllog' => 'Joto cạbi udugmẽ',
+'edit-hook-aborted' => 'Huk hotete joto sompadonko bạgi hoeakana.
+Noa reaḱ jahan katha do bạnuḱa.',
+'edit-gone-missing' => 'Sakam do baṅ halot ruạṛlena.
+Pasecc: sakam do ocoǵ hoeakana.',
+'edit-conflict' => 'Sompadon reṭepeṭe.',
+'edit-no-change' => 'Amaḱ sompadon do baṅ hataolena, Cedaḱ je olre jahan bodol bạnuḱa.',
+'edit-already-exists' => 'Nãwã sakam baṅ tear lena.
+Sakam do laha khon menaḱgea.',
+'defaultmessagetext' => 'Sedae olko',
 
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => '"Sontoroḱme" Noa format do lạṭu geya.
 Thoṛa format do noare banuḱana.',
 'post-expand-template-inclusion-category' => 'Sakamko oka borḍre noa tahẽna ona doe paromkeda',
+'post-expand-template-argument-warning' => "'''Sontoroḱmẽ:''' Noa sakamre komse kom mitṭen forma joṛao menaḱa ạḍi lạṭute pasnao akana.
+Onate noa ạrgumenṭkodo bạgi giḍi hoena.",
+'post-expand-template-argument-category' => 'Bagi forma ạrgumenṭ sapdoho sakam',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Ekaunṭ do baṅ tearlena',
 
 # History pages
 'viewpagelogs' => 'Noa sakam reaḱ cạbi udukme',
+'nohistory' => 'Noa sakam re do jahan sompadon reaḱ jạṛ bạnuḱa.',
+'currentrev' => 'Mucạt nãwã aroe',
 'currentrev-asof' => 'Mucạt nãwã aroy',
-'revisionasof' => 'Nãwã aro sakam 1',
+'revisionasof' => 'Nãwã aro sakam $1 leka',
 'revision-info' => 'Ńel/pańja ruạṛ $1 khon $2',
 'previousrevision' => 'Pạhilaḱ paṛhao ruạṛ',
 'nextrevision' => "nãwate n'el ruar",
@@ -451,24 +639,35 @@ Thoṛa format do noare banuḱana.',
 'last' => 'Laha renaḱ',
 'page_first' => 'Pahilaḱ',
 'page_last' => 'Mucạt́aḱ',
+'histlegend' => "Farak bachao: oka nãwã aroeko tulạoem menet́kan, onako cinhạ em kate boloḱ se latar baṭon linmẽ.<br/>
+Unuduḱ: '''({{int:cur}})''' = nahaḱ nãwã aroeko saõte tulạo, '''({{int:last}})''' = laha reaḱ nãwã aroe sãote tulạo, '''{{int:minoreditletter}}''' = huḍiń sompadon.",
 'history-fieldset-title' => 'Sendray jaṛ',
 'history-show-deleted' => 'khạli get giḍiyaḱ koge',
 'histfirst' => "adi laha-ak'",
 'histlast' => 'Nahak',
+'historysize' => '({{PLURAL:$1 1 bayeṭ $1 bayeṭko}})',
 'historyempty' => '(banuḱa)',
 
 # Revision feed
 'history-feed-title' => 'Jạṛ nãwã aroy',
+'history-feed-description' => 'Noa wikire noa sakam reaḱ nãwã aroe jạṛ',
 'history-feed-item-nocomment' => 're',
 
 # Revision deletion
+'rev-deleted-comment' => '(Sompadon reaḱ guṭ katha do ocoǵ hoena)',
 'rev-deleted-user' => '(laṛcaṛić ńutum ocoḱena)',
+'rev-deleted-event' => '(Log kạmi do ocog hoena)',
+'rev-deleted-user-contribs' => '[Beoharićaḱ ńutum se IP ṭhikạna do ocog hoena - kạmi khon sompadon do uku hoe akana]',
 'rev-delundel' => 'ńeloḱ/danaṅ',
 'rev-showdeleted' => 'Uduḱme',
 'revisiondelete' => 'Get giḍi/nãwã aro baṅ getgiḍi',
 'revdelete-show-file-submit' => 'Hẽ',
+'revdelete-hide-text' => 'Nãwã aroe olko ukuemẽ',
+'revdelete-hide-image' => 'Rẽt reaḱ babotko ukue mẽ',
+'revdelete-hide-name' => 'Kạmi ar bejha ukue mẽ',
 'revdelete-radio-same' => '(alom bodola)',
 'revdelete-radio-set' => 'Hẽ',
+'revdelete-radio-unset' => 'Baṅ',
 'revdel-restore' => 'Judạ lekate ńel',
 'revdel-restore-deleted' => 'giḍikaḱ ńel ruạṛ',
 'revdel-restore-visible' => 'Ńeloḱ leka paṛhao ruạṛ',
@@ -480,10 +679,11 @@ Thoṛa format do noare banuḱana.',
 'revertmerge' => 'bań mit́',
 
 # Diffs
-'history-title' => '"$1" noa jạṛ nãwã aroy',
+'history-title' => '"$1": Jạṛ nãwã aroe',
 'lineno' => 'Sạr $1:',
 'compareselectedversions' => 'Noa barea nãwã bachawanaḱ talare tolonayme',
 'editundo' => 'ruạṛ',
+'diff-multi' => '({{PLURAL:$2 mit́ṭen beoharic $2 hoṛ beoharkin}} Sompadon hoena {{PLURAL:$1 mit́ṭen do mitghạṛi lạgit sudhrạo mit́ṭen do mitghạṛi lạgit sudhrạo}} baṅ uduḱlena.)',
 
 # Search results
 'searchresults' => 'Se̠ndra fo̠l',
@@ -499,14 +699,15 @@ Thoṛa format do noare banuḱana.',
 'searchprofile-articles' => 'Menaḱaḱ sakamko',
 'searchprofile-project' => 'Go̠ṛo ar Project sakam',
 'searchprofile-images' => 'Multimedia',
-'searchprofile-everything' => 'Sanamak koge',
+'searchprofile-everything' => 'Sanama koge',
 'searchprofile-advanced' => 'Sompadon',
-'searchprofile-articles-tooltip' => '$1 re ñelme',
+'searchprofile-articles-tooltip' => '$1 re ńelme',
 'searchprofile-project-tooltip' => '$1 re sẽndraeme',
 'searchprofile-images-tooltip' => 'File sendra',
 'searchprofile-everything-tooltip' => 'Sanam ko modre sẽndra ( roṛ sakam modre hõ)',
 'searchprofile-advanced-tooltip' => 'Judạ ńutum re sẽndra',
-'search-result-size' => 'Katha Kathako',
+'search-result-size' => '$1 ({{PLURAL:$2 1 Aṛaṅ$2 Aṛaṅko}})',
+'search-result-category-size' => '{{PLURAL: $1 1 gãoren $1 gãota renko}} ({{PLURAL: $2 1 kạṭic rokom sokom $ 2 goṭen}}, {{PLURAL:$3 1 rẽt $3 rẽtko}})',
 'search-redirect' => '($1 te sujhi doṛha )',
 'search-section' => '(Pahaṭa $1)',
 'search-suggest' => 'Am do cet́ $1 em menocoyet tãhẽkana',
@@ -542,7 +743,7 @@ Thoṛa format do noare banuḱana.',
 'youremail' => 'E-mail:',
 'username' => 'Beoharićaḱ ńutum:',
 'uid' => 'Beoharićaḱ cinhạo nombor',
-'yourrealname' => 'Sạ̣ri ńutum',
+'yourrealname' => 'Sạri ńutum',
 'gender-male' => 'Baba hoṛ',
 'gender-female' => 'Gogo hoṛ, Kuṛi, Kuṛi gidrạ',
 'email' => 'E-mail',
@@ -577,18 +778,23 @@ Amaḱ e-mail ṭhikạna do bań cabaḱa tinre onko do ko beohara',
 'action-edit' => 'noa sakam joṛao',
 
 # Recent changes
+'nchanges' => '$1 {{PLURAL:$1 bodol bodolko}}',
 'recentchanges' => 'Nãwã bo̠do̠lko',
 'recentchanges-legend' => 'Nahaḱ bodol teaḱko',
+'recentchanges-summary' => 'Noa sakamre wiki reaḱ joto khon nãwã bodolko paṅjaṅjaymẽ.',
+'recentchanges-feed-description' => 'Noa feedre wiki reaḱ joto khon nãwã bodolko paṅjaymẽ',
 'recentchanges-label-newpage' => 'Noa sompadon do nãwã mint́ṭen sakame tearkeda',
 'recentchanges-label-minor' => 'Noado hudiń mạchi sompadonkana',
 'recentchanges-label-bot' => 'Noa sompadon do bot darate purauena',
 'recentchanges-label-unpatrolled' => 'Noa sompadon do ńit́ hạbić baṅ ńel ńamakana',
+'rcnote' => "Latar reaḱ {{PLURAL:$2 dinre '''$2''' dinre}} hoyena {{PLURAL:$1 '''1''' '''$1'''}}gan bodol latare uduḱena ((okare nitaḱ okte ar tạrikh do $5, $4).",
 'rcnotefrom' => '$2 habić bodolak ko do latare ńeloḱkana',
 'rclistfrom' => 'Nãwã  bodolko uduḱme $1 khon ehoṕkate',
 'rcshowhideminor' => '$1 kaṭic culuń tońge',
 'rcshowhidebots' => ' boṭko $1',
 'rcshowhideliu' => 'Beoharićaḱ boloḱ $1',
 'rcshowhideanons' => '$1 Nũtum bańa bebohariḱ',
+'rcshowhidepatr' => '$1 Biḍạen sompadonko',
 'rcshowhidemine' => '$1 ińaḱ tońge',
 'rclinks' => '$2 din lahare $1 bodol unuduḱme <br />$3',
 'diff' => 'Judạ',
@@ -620,7 +826,7 @@ Amaḱ e-mail ṭhikạna do bań cabaḱa tinre onko do ko beohara',
 'filedesc' => 'Guṭ katha',
 'fileuploadsummary' => 'Guṭ katha',
 'savefile' => 'Rẽt rukhiyaymẽ',
-'uploadedimage' => 'Rakaṕ hoyena',
+'uploadedimage' => '"[[$1]]" rakaṕ huyena',
 'upload-description' => 'Rẽt reaḱ jạṛ',
 'watchthisupload' => 'Noa rẽt ńelmẽ',
 
@@ -651,7 +857,7 @@ Amaḱ e-mail ṭhikạna do bań cabaḱa tinre onko do ko beohara',
 'filehist-dimensions' => 'Maṕ',
 'filehist-comment' => 'Roṛ',
 'imagelinks' => 'Fael bebohar',
-'linkstoimage' => 'Noa sakam do niạ rẽtre/fayel joṛao menaḱa',
+'linkstoimage' => 'Latar reaḱ {{PLURAL:$1 sakam $1 sakam}} khon noa rẽtre joṛao menaḱa:',
 'nolinkstoimage' => 'Nonḍe do noa são joṛao sakam banuka',
 'sharedupload-desc-here' => 'Noa rẽt do nonḍe khon-  $1 ar paseć eṭaḱaḱ porjekṭko beoharakana.
 Noa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena',
@@ -667,17 +873,19 @@ Noa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena',
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|baiṭ|baiṭ}}',
-'nmembers' => 'Sãoten/ Sãotenko',
+'nmembers' => '$1 {{PLURAL:$1 Gaõtaren Gaõtarenko}}',
 'prefixindex' => 'Sanam sakam re joṛao menaḱ',
 'shortpages' => 'Huḍiń sakamko',
 'longpages' => 'Jiliń sakamko',
 'listusers' => 'beoharićaḱ tạlika',
-'usercreated' => 'Ayo baba: tạrikh okte',
+'usercreated' => '{{JẠT: $3 | benawakan}} $1 tarikre $2 okte',
 'newpages' => 'Nãwa Patako',
 'newpages-username' => 'Beoharićaḱ ńutum:',
 'ancientpages' => 'Mare sakamko',
 'move' => 'Ocoḱme, Kulme',
 'movethispage' => 'Noa sakam ocogmẽ',
+'pager-newer-n' => '{{PLURAL:$1 nãwaw aroyen 1ṭen nãwã aroyen $1ṭen}}',
+'pager-older-n' => '{{PLURAL:$1 arhõ mare 1ṭen arhõ mare $1ṭen}}',
 
 # Book sources
 'booksources' => 'Puthi ńamoḱ ṭhại/jayga',
@@ -699,7 +907,7 @@ Noa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena',
 'categories' => 'rokom sokom',
 
 # Special:LinkSearch
-'linksearch-line' => '$2 joṛao menaḱa $2re',
+'linksearch-line' => '$2 khon $1 re joṛao hoeakana',
 
 # Special:ListUsers
 'listusers-submit' => 'Udugmẽ',
@@ -730,10 +938,11 @@ Noa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena',
 # Watchlist
 'watchlist' => "Inak' n'el ko",
 'mywatchlist' => 'Iñak jagarna tạlikạ',
-'watchlistfor2' => 'Lạgit',
+'watchlistfor2' => '$1 ($2) lạ̣gitte',
 'watch' => 'Ńelme',
 'unwatch' => "bang nelok' a",
-'wlshowlast' => 'Mucạt 1 ghonta mucạt 2 maha uduḱme',
+'watchlist-details' => 'Baṅ purạo tạlikare {{PLURAL:$1ṭen sakam $1 ṭen sakam}} menaḱa (roṛ sakamko lekhare baṅ sapkate)',
+'wlshowlast' => 'Mucạtet́ udukmẽ $1 baje $2 maha $3',
 'watchlist-options' => 'Ńelok tạlika reak sonketko',
 
 # Displayed when you click the "watch" button and it is in the process of watching
@@ -753,7 +962,7 @@ Noa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena',
 
 # Protect
 'protectlogpage' => 'Rukhiyạy tala cạbi',
-'protectedarticle' => 'Rukhiyạre menaḱa',
+'protectedarticle' => 'Rukhiyạgeya "[[$1]]"',
 'protectcomment' => 'karon',
 'protectexpiry' => 'Cabaḱ',
 
@@ -773,7 +982,7 @@ Noa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena',
 
 # Contributions
 'contributions' => 'Beharićaḱ Kạmiko',
-'contributions-title' => 'Laṛcaṛicaḱ kạmiko lạgit',
+'contributions-title' => '$1 Beoharićaḱ kạmiko',
 'mycontris' => 'Ińaḱ kạmiko',
 'contribsub2' => '$1 ($2) lạgitte',
 'uctop' => '(coṭ utạr)',
@@ -792,20 +1001,20 @@ Noa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena',
 
 # What links here
 'whatlinkshere' => 'Cet́ link ko no̠nḍe do',
-'whatlinkshere-title' => 'Noa sakam do 1 sakam tuluc joṛao menaḱa',
+'whatlinkshere-title' => 'Oka sakam ko do "$1"-re joṛao menaḱa',
 'whatlinkshere-page' => 'Sakam',
-'linkshere' => 'Noa sakam do joṛao menaka:',
-'nolinkshere' => 'Sakamko joṛao bạnuḱa',
+'linkshere' => "Latar reaḱ sakamko do '''[[:$1]]''' sakamre joṛao menaḱa:",
+'nolinkshere' => "Jahan sakam khon '''[[:$1]]''' sakamre joṛao bạnuḱa",
 'isredirect' => 'Bań sojhe sakam',
 'istemplate' => 'Ar mit́ teć sãote joṛao',
 'isimage' => 'Ret joṛao',
-'whatlinkshere-prev' => 'Tayom renaḱ Táoy renaḱko',
-'whatlinkshere-next' => 'Laha renaḱ Laha renaḱko',
+'whatlinkshere-prev' => '{{PLURAL:$1 Laha reaḱ Laha reaḱ$1ṭen}}',
+'whatlinkshere-next' => '{{PLURAL:$1 |Laha renaḱ | Laha renaḱko $1}}',
 'whatlinkshere-links' => 'Joṛaoko',
 'whatlinkshere-hideredirs' => '$1 acurgeya',
-'whatlinkshere-hidetrans' => 'Bodolaḱ danaṅ',
-'whatlinkshere-hidelinks' => 'Joṛao danaṅ se uduḱme',
-'whatlinkshere-hideimages' => 'phoṭo em',
+'whatlinkshere-hidetrans' => '$1 ṭarnskuleson uduḱme',
+'whatlinkshere-hidelinks' => '$1 joṛao',
+'whatlinkshere-hideimages' => '$1 Chubi joṛaoko',
 'whatlinkshere-filters' => 'Sapha',
 
 # Block/unblock
@@ -817,7 +1026,7 @@ Noa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena',
 'ipblocklist' => 'Beoharic esetgeyay',
 'ipblocklist-submit' => 'Sendra',
 'emailblock' => 'E-mail do esetgea',
-'blocklink' => 'Eset',
+'blocklink' => 'Eset́',
 'unblocklink' => 'bań block',
 'change-blocklink' => 'block judạ',
 'contribslink' => 'em daṛeaḱ',
@@ -849,18 +1058,19 @@ Noa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena',
 
 # Thumbnails
 'thumbnail-more' => 'Lạṭui mẽ',
+'thumbnail_error' => 'Benawakan unuduḱ kạṭuṕ do baṅ ṭhika: $1',
 
 # Special:Import
 'import-upload-filename' => 'Rẽt ńutum',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Amak bebohar sakam',
-'tooltip-pt-mytalk' => 'Amaḱ katha ro̠ṛrenaḱ́ pata',
-'tooltip-pt-preferences' => 'Amaḱ Kusíyaḱ',
-'tooltip-pt-watchlist' => 'Mit́ṭen tạlika okaṭak am do nãwã aroy lạgitem ńeleḱkan',
+'tooltip-pt-userpage' => 'Amaḱ́ bebo̠harić sakam',
+'tooltip-pt-mytalk' => 'Amaḱ katha ro̠ṛrenaḱ́ sakam',
+'tooltip-pt-preferences' => 'Amaḱ pạsindko',
+'tooltip-pt-watchlist' => 'Sakam tạlika okaṭak̕katet́ am do nãwã aroy lạgitem ńeleḱkan',
 'tooltip-pt-mycontris' => 'Amaḱ kạmi reaḱ tạlika',
 'tooltip-pt-login' => 'Am do log in lagit́ metao am kana; menkhan noa do jarur bań kana',
-'tooltip-pt-logout' => 'Onḍńme',
+'tooltip-pt-logout' => 'O̠nḍo̠ńme',
 'tooltip-ca-talk' => 'Galmãrao bhitri renaḱ sakam lạgit́',
 'tooltip-ca-edit' => 'Noa sakam em edit daṛeaḱ. Daya kateć save laha re preview batton bebohar me.',
 'tooltip-ca-addsection' => 'Nãwã sekson sạrdi',
@@ -878,7 +1088,7 @@ Ona te source em ńel daṛeaḱ',
 'tooltip-p-logo' => 'Mukhiạ sakamre calaḱme',
 'tooltip-n-mainpage' => 'Mukhiạ sakamre calaḱme',
 'tooltip-n-mainpage-description' => 'Mukhiạ sakamre calaḱme',
-'tooltip-n-portal' => 'Niạ pro̠je̠ḱ́ṭreaḱ Biso̠yko, Cet́́em ceka daṛia,Okare̠ sendra ñamoḱ́a',
+'tooltip-n-portal' => 'Niạ pro̠je̠ḱ́ṭreaḱ Biso̠yko, Cet́em ceka daṛia,Okare̠ sendra ñamoḱ́a',
 'tooltip-n-currentevents' => 'Nitaḱ events re jos hudis ńãm me',
 'tooltip-n-recentchanges' => 'Uiki nãhaḱ palaṭrenaḱ́ tạlikạ',
 'tooltip-n-randompage' => 'Ãr hõ sakam ko agui mẽ',
@@ -929,6 +1139,7 @@ Ona te source em ńel daṛeaḱ',
 # Media information
 'file-info-size' => '$1 x $2 pixels, file size: $3, MIME type: $4',
 'file-nohires' => 'Aema resulation nondḍe banuḱa',
+'svg-long-desc' => 'SVG rẽt, normalte $1 x $2 pixels, rẽt sayej: $3',
 'show-big-image' => 'Purạo resulation',
 
 # Special:NewFiles
@@ -957,7 +1168,7 @@ jeleń',
 'exif-artist' => 'Onoliạ',
 
 # External editor support
-'edit-externally' => 'Noa rẽt tońge joṛao lạ̣gitte bahre reaḱ koejoń  beoharme',
+'edit-externally' => 'Noa rẽt tońge joṛao lạgitte bahre reaḱ koejoń  beoharme',
 'edit-externally-help' => '(Nonḍe ńelme [//www.mediawiki.org/wiki/Manual:External_editors setup instructions] bạṛtite baḍay lạgit)',
 
 # 'all' in various places, this might be different for inflected languages
@@ -968,10 +1179,23 @@ jeleń',
 # Watchlist editing tools
 'watchlisttools-view' => 'Jońgṛao bodolaḱko ńel',
 'watchlisttools-edit' => 'Ńelok tạlika ńel ar joṛao',
+'watchlisttools-raw' => 'Baṇ purạo akan ńelok tạlika purạomẽ',
+
+# Core parser functions
+'duplicate-defaultsort' => "'''Sontoroḱmẽ:''' ḍifolṭ sajao reaḱ cạbi: $2 lahare ḍifolṭ sajao reaḱ sakam: ''$1'' e bae luturaḱ kana.",
 
 # Special:SpecialPages
 'specialpages' => 'Jạruṛ patako',
 
+# External image whitelist
+'external_image_whitelist' => '#Noa sakam do cet leka menaḱa oṅkage dohoemẽ
+#Sanam okte re jạhiren kuṭrạ latar re (khạli hạtiń //talare) bạisạomẽ
+#Noako do bahre reaḱ (hotlinked) chubi reaḱ URL saõte milạo hoyoḱa
+#Okako milạḱa, onako do chubi lekate udugoḱa, baṅkhan do khali chubi joṛao udugoḱa
+#Noa layen reaḱ ehoṕre # menaḱa ona layenko menko hisapte beohar hoyoḱka
+#Noa do kas-baṅ rimjhạoaḱge
+#Noa dag cetanre regex kuṭrạ bạsạomẽ. Noa layen cetleka menaḱa oṅkage dohoemẽ</pre>',
+
 # Special:Tags
 'tag-filter' => '[[Special:Tags|Tag]] saphay:',
 
index 14bcaa2..4a74cb9 100644 (file)
@@ -1281,7 +1281,7 @@ L'operazioni nun pò èssiri annullata.",
 'nchanges' => '$1 {{PLURAL:$1|canciamentu|canciamenti}}',
 'recentchanges' => 'Ùrtimi canciamenti',
 'recentchanges-legend' => 'Opzioni ùrtimi canciamenti',
-'recentchangestext' => 'Chista pàggina prisenta li canci cchiù ricenti ê cuntinuti dô situ.',
+'recentchanges-summary' => 'Chista pàggina prisenta li canci cchiù ricenti ê cuntinuti dô situ.',
 'recentchanges-feed-description' => 'Stu feed riporta li canciamenti cchiù ricenti a li cuntinuti dû situ.',
 'recentchanges-label-newpage' => 'This edit havi creatu na nova pàggina',
 'recentchanges-label-minor' => 'Chista è nu canciamentu nnicu',
index 37b5f79..fb14ac7 100644 (file)
@@ -826,7 +826,7 @@ Yer e-mail address insae revealed whin ither uisers contact ye.",
 'nchanges' => '$1 {{PLURAL:$1|chynge|chynges}}',
 'recentchanges' => 'Recent chynges',
 'recentchanges-legend' => 'Recent changes options',
-'recentchangestext' => 'Follae the maist recent chynges tae the wiki on this page.',
+'recentchanges-summary' => 'Follae the maist recent chynges tae the wiki on this page.',
 'recentchanges-feed-description' => 'Follae the maist recent chynges tae the wiki in this feed.',
 'recentchanges-label-newpage' => 'This edit created a freish page',
 'recentchanges-label-minor' => 'This is a smaa edit',
index 8dad189..5db1519 100644 (file)
@@ -927,7 +927,7 @@ Cunsulthà lu [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rigi
 'nchanges' => '$1 {{PLURAL:$1|mudìfigga|mudìfigghi}}',
 'recentchanges' => 'Ulthimi mudìfigghi',
 'recentchanges-legend' => 'Opzioni ulthimi mudifigghi',
-'recentchangestext' => 'Chistha pàgina prisinta li mudìfigghi più rizzenti a li cuntinuddi di lu situ.',
+'recentchanges-summary' => 'Chistha pàgina prisinta li mudìfigghi più rizzenti a li cuntinuddi di lu situ.',
 'recentchanges-feed-description' => 'Chisthu feed cunteni li mudìfigghi più rizzenti a li cuntinuddi di lu situ.',
 'rcnote' => "Inogghi {{PLURAL:$1|è erencadda la mudìfigga più rizzenti arriggadda|so erencaddi li '''$1''' mudìfigghi più rizzenti arriggaddi}} a lu situ {{PLURAL:$2|i' l'ulthimi 24 ori|i' li '''$2''' dì passaddi}}; i dati so aggiornaddi a li $5 di lu $4.",
 'rcnotefrom' => "Inogghi so erencaddi li mudìfigghi arriggaddi a parthì da '''$2''' (finz'a '''$1''').",
index 8722978..1b6476c 100644 (file)
@@ -7,6 +7,8 @@
  * @ingroup Language
  * @file
  *
+ * @author Gálaniitoluodda
+ * @author Jeblad
  * @author Kaganer
  * @author Laila
  * @author Skuolfi
  * @author לערי ריינהארט
  */
 
+$namespaceNames = array(
+       NS_MEDIA            => 'Media',
+       NS_SPECIAL          => 'Doaimmat',
+       NS_TALK             => 'Ságastallan',
+       NS_USER             => 'Geavaheaddji',
+       NS_USER_TALK        => 'Geavaheaddjeságastallan',
+       NS_PROJECT_TALK     => '$1-ságastallan',
+       NS_FILE             => 'Fiila',
+       NS_FILE_TALK        => 'Fiilaságastallan',
+       NS_MEDIAWIKI        => 'MediaWiki',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki-ságastallan',
+       NS_TEMPLATE         => 'Málle',
+       NS_TEMPLATE_TALK    => 'Málleságastallan',
+       NS_HELP             => 'Veahkki',
+       NS_HELP_TALK        => 'Veahkkeságastallan',
+       NS_CATEGORY         => 'Kategoriija',
+       NS_CATEGORY_TALK    => 'Kategoriijaságastallan',
+);
+
+$specialPageAliases = array(
+       'Recentchanges'             => array( 'Varas_rievdadusat' ),
+);
+
 $linkTrail = '/^(:?[a-zàáâçčʒǯđðéèêëǧǥȟíìîïıǩŋñóòôõßšŧúùûýÿüžþæøåäö]+)(.*)$/sDu';
 
 $messages = array(
@@ -116,13 +141,13 @@ $messages = array(
 'listingcontinuesabbrev' => 'joatk.',
 
 'about' => 'Dieđut',
-'article' => 'Siidu',
+'article' => 'Sisdoallusiidu',
 'newwindow' => '(leahkasa ođđa vindui)',
 'cancel' => 'Šluhtte',
 'moredotdotdot' => 'Lasi...',
 'mypage' => 'Mu siidu',
 'mytalk' => 'Mu ságastallan',
-'anontalk' => 'Ságastala dán IP-čujuhusain',
+'anontalk' => 'Ságastallan IP-čujuhussii',
 'navigation' => 'Navigašuvdna',
 'and' => '&#32;ja',
 
@@ -136,7 +161,15 @@ $messages = array(
 'qbspecialpages' => 'Doaibmasiiddut',
 
 # Vector skin
+'vector-action-delete' => 'Sihko',
+'vector-action-move' => 'Sirdde',
+'vector-action-protect' => 'Suodjal',
+'vector-action-unprotect' => 'Rievdat suodjaleami',
+'vector-view-create' => 'Álggat',
+'vector-view-edit' => 'Rievdat',
+'vector-view-history' => 'Geahča historjjá',
 'vector-view-view' => 'Loga',
+'vector-view-viewsource' => 'Geahča gáldokoda',
 
 'errorpagetitle' => 'Feaila',
 'returnto' => 'Máhcat siidui $1.',
@@ -168,7 +201,7 @@ $messages = array(
 'specialpage' => 'Sierrasiidu',
 'personaltools' => 'Persovnnalaš bargoneavvu',
 'postcomment' => 'Ođđa sekšuvdna',
-'articlepage' => 'Čájet sisdoallusiiddu',
+'articlepage' => 'Geahča sisdoalu',
 'talk' => 'Ságastallan',
 'views' => 'Čájáhusat',
 'toolbox' => 'Neavvobumbá',
@@ -258,7 +291,7 @@ $messages = array(
 'formerror' => 'Skovi dieđut eai dohkke',
 'badarticleerror' => 'Doaimma ii leat vejolaš dahkat dán siiddus.',
 'cannotdelete' => 'Siiddu dahje fiilla sihkkon ii lihkosmuvvan. Muhtun eará lea sáhttán sihkkut dan.',
-'badtitle' => 'Feaila bájilčállagis',
+'badtitle' => 'Fuones bajilčála',
 'badtitletext' => 'Siiddu bájilčállagis lei feaila, dahje dat lei guoros dahje boastut ráhkaduvvon wikiid- dahje gielaidgaskasaš liŋka.',
 'perfcached' => 'Dieđut leat gaskabottosašmuittus eaige sihkkarit vástit dálá hámi. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
 'perfcachedts' => 'Čuovvovaš data lea buktojuvvon gaskabottosašmuittus ja dat lea maŋimusta beaiváduvvon $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
@@ -283,7 +316,7 @@ Du geavaheaddjidovddaldat lea dál anus.
 'login' => 'Čálligoađe sisa',
 'nav-login-createaccount' => 'Daga ođđa geavaheaddjidovddaldaga dahje čálligoađe sisa',
 'loginprompt' => 'Sisačállimii dárbbašuvvojit geavssat (cookies).',
-'userlogin' => 'Daga ođđa geavaheaddjidovddaldaga dahje čálligoađe sisa',
+'userlogin' => 'Logge sisa dahje ráhkat dovddaldaga',
 'logout' => 'Čálligoađe olggos',
 'userlogout' => 'Čálligoađe olggos',
 'notloggedin' => 'It leat čálligoahttan sisa',
@@ -293,7 +326,7 @@ Du geavaheaddjidovddaldat lea dál anus.
 'gotaccount' => "Jus dus lea jo geavaheaddjidovddaldat, sáhtát '''$1'''.",
 'gotaccountlink' => 'čálligoahtit sisa',
 'createaccountmail' => 'e-poasttain',
-'badretype' => 'Suollemassánit, maid čállet, eai leat seammalaganat.',
+'badretype' => 'Suollemassánit maid čállet eai leat seammalaganat.',
 'userexists' => 'Geavaheaddjidovddaldat, man evttohit, lea jo anus. Leage buorre ja vállje nubbi geavaheaddjidovddaldaga.',
 'loginerror' => 'Feaila sisačálidettiin',
 'nocookieslogin' => '{{SITENAME}} geavaha diehtočoahkuid (cookies) sisačállima oktavuođas. Du neahttabláđejeaddji ii suova geavahit diehtočoahkuid. Váldde daid atnui ja iskka ođđasit.',
@@ -368,13 +401,13 @@ Du geavaheaddjidovddaldat lea dál anus.
 'showpreview' => 'Geahča ovdalgiihtii',
 'showlivepreview' => 'Ovdalgeahčastan',
 'showdiff' => 'Čájet rievdadusaid',
-'anoneditwarning' => 'It leat čálligoahtán sisa. IP-čujuhusat lasihuvvo dán siiddu rievdadanhistorjái.',
+'anoneditwarning' => "'''Váruhus:''' It leat čálligoahtán sisa. Du IP-čujuhus báhcá dán siiddu ođasmahttinhistorjái.",
 'missingsummary' => 'It leat čállán čoahkkáigeasu. Jus válljet Vurke ođđasit, de rievdadusat maid ráhkadit vurkejuvvo čoahkkáigeasuhaga.',
 'missingcommenttext' => 'Čále čoahkkáigeasu vuollái.',
 'missingcommentheader' => 'It leat čállán bajilčállaga du oaivilii. Vállje <em>Vurke</em>, jus it hálit čállit bajilčállaga.',
 'summary-preview' => 'Čoahkkáigeasu ovdalgihtiigeahččan:',
 'subject-preview' => 'Bajilčállaga ovdalgihtiigeahččan:',
-'blockedtitle' => 'Geavaheaddji lea cakkastallojuvvon',
+'blockedtitle' => 'Geavaheaddji lea cakkojuvvon',
 'whitelistedittext' => 'Don fertet $1, ovdalgo sáhtát rievdadit siidduid.',
 'confirmedittext' => 'It sáhte rievdadit siiddu ovdalgo leat sihkarastan iežat e-poastačujuhusa. Sáhtat sihkarastit [[Special:Preferences|ásahussiidduin]].',
 'nosuchsectiontitle' => 'Diekkár oassi ii gávdno',
@@ -466,6 +499,7 @@ Eará bajasdoallit sáhtet lohkat čihkojuvvon sisdoalu ja máhcahit dan.",
 
 # Search results
 'searchresults' => 'Ohcama bohtosat',
+'searchresults-title' => 'Ohcanbohtosat: "$1"',
 'searchsubtitle' => 'Ohcan tearpmain [[:$1]]',
 'searchsubtitleinvalid' => 'Ohcan tearpmain $1',
 'notitlematches' => 'Ohcansátni ii dihtton ovttasge bájilčállagis',
@@ -475,6 +509,10 @@ Eará bajasdoallit sáhtet lohkat čihkojuvvon sisdoalu ja máhcahit dan.",
 
 $1 {{int:pipe-separator}} $2',
 'searchhelp-url' => 'Help:Rávvagat',
+'searchprofile-articles' => 'Sisdoallosiiddut',
+'searchprofile-project' => 'Veahkke- ja prošeaktasiiddut',
+'searchprofile-everything' => 'Buot',
+'searchprofile-advanced' => 'Viiddiduvvon',
 'showingresults' => "{{PLURAL:$1|'''Okta''' boađus|'''$1''' bohtosa}} bohtosa'''$2''' rájes.",
 'showingresultsnum' => "Vuolábealde {{PLURAL:$3|lea '''okta''' ohcanboađus|leat '''$3''' ohcanbohtosa}} '''$2.''' bohtosa rájes.",
 'powersearch' => 'Oza',
@@ -570,7 +608,7 @@ $1 {{int:pipe-separator}} $2',
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|rievdadus|rievdadusa}}',
 'recentchanges' => 'Varas rievdadusat',
-'recentchangestext' => 'Dán siiddus sáhtat čuovvut varas rievdadusaid {{GRAMMAR:illative|{{SITENAME}}}}.',
+'recentchanges-summary' => 'Dán siiddus sáhtat čuovvut varas rievdadusaid {{GRAMMAR:illative|{{SITENAME}}}}.',
 'recentchanges-feed-description' => 'Dán siiddus sáhtat čuovvut varas {{GRAMMAR:illative|{{SITENAME}}}} rievdadusaid.',
 'rcnote' => 'Vuollin {{PLURAL:$1|lea okta rievdadus|leat $1 varas rievdadusa}} {{PLURAL:$2|ovtta beaivvi|$2 maŋimus jándora}} áigge gitta $3 rádjái.',
 'rcnotefrom' => "Vuolábealde leat rievdadusat '''$2''' rájes. Eanemusta '''$1''' mearkkastaga čájehuvvo.",
@@ -614,7 +652,7 @@ $1 {{int:pipe-separator}} $2',
 'uploadedfiles' => 'Lasihuvvon fiillat',
 'ignorewarning' => 'Vurke fuolatkeahttá varuhusas',
 'minlength1' => 'Fiilla namas ferte leat unnimustá okta mearka.',
-'badfilename' => 'Fiilla nama rievdaduvvui: $1.',
+'badfilename' => 'Fiila namma lea rievdaduvvon. Ođđa namma lea "$1".',
 'filetype-missing' => 'Fiillas vailui fiilageažus – ovdamearkkan <tt>.jpg</tt>.',
 'large-file' => 'Fiilla max. sturrodat lea $1. Fiila man lasihit lea $2.',
 'largefileserver' => 'Dát fiila lea menddo stuoris.',
@@ -767,6 +805,8 @@ $1 {{int:pipe-separator}} $2',
 'deadendpages' => 'Siiddut, main eai leat liŋkkat',
 'deadendpagestext' => 'Čuovvovaš siidduin eai leat liŋkkat eara siidduide dán wikis.',
 'protectedpages' => 'Suodjáluvvon siiddut',
+'protectedpages-indef' => 'Beare siiddut, maid suodjaleapmi lea bissovaš',
+'protectedpages-cascade' => 'Beare siiddut, maid suodjaleapmi lea viiddiduvvon',
 'protectedpagestext' => 'Čuovvovaš siiddut leat suodjáluvvon sirdimiin ja rievdadusain',
 'listusers' => 'Geavaheaddjilistu',
 'newpages' => 'Ođđa siiddut',
@@ -923,6 +963,8 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'protect-summary-cascade' => 'viiddiduvvon',
 'protect-expiring' => 'boarásnuvvá $1',
 'protect-cascade' => 'Viididt suodjálusa guoskat buot siidduit, mat gullet dán siidui',
+'protect-othertime' => 'Eará áigi:',
+'protect-othertime-op' => 'eará áigi',
 'protect-expiry-options' => '2 diimma:2 hours,1 beaivi:1 day,3 beaivve:3 days,1 vahkku:1 week,2 vahkku:2 weeks,1 mánotbádji:1 month,3 mánotbaji:3 months,6 mánotbaji:6 months,1 jahki:1 year,bissovaš:infinite',
 'restriction-type' => 'Rádjehus',
 'restriction-level' => 'Suodjálus',
@@ -933,6 +975,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 # Restrictions (nouns)
 'restriction-edit' => 'rievdádeapmi',
 'restriction-move' => 'sirdin',
+'restriction-upload' => 'Fiilla vurken',
 
 # Restriction levels
 'restriction-level-sysop' => 'ollislaččat suodjáluvvon',
@@ -961,7 +1004,9 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 
 # Contributions
 'contributions' => 'Geavaheaddji rievdadusat',
+'contributions-title' => 'Geavaheaddji $1 rievdadusat',
 'mycontris' => 'Rievdadusat',
+'uctop' => '(ođđaseamos)',
 'month' => 'Mánotbadji',
 'year' => 'Jahki',
 
@@ -987,7 +1032,10 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'whatlinkshere-links' => 'liŋkkat',
 
 # Block/unblock
+'block' => 'Cagge geavaheaddji',
 'blockip' => 'Eastte rievdadusaid',
+'blockip-title' => 'Cagge geavaheaddji',
+'blockip-legend' => 'Cagge geavaheaddji',
 'ipadressorusername' => 'IP-čujuhus dahje geavaheaddjidovddaldat',
 'ipbexpiry' => 'Guhkkodat',
 'ipbreason' => 'Sivva',
@@ -1014,6 +1062,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'ipb-edit-dropdown' => 'Rievdat sivaid',
 'ipb-unblock-addr' => 'Sihko geavaheaddji $1 estema',
 'ipb-unblock' => 'Sihko geavaheaddji dahje IP-čujuhusa rievdadaneasttu',
+'ipblocklist' => 'Listu cakkojuvvon IP-adreassain ja geavaheddjiin',
 'ipblocklist-submit' => 'Oza',
 'infiniteblock' => 'bissovaččat',
 'expiringblock' => 'boarásnuvvá $1 $2',
@@ -1038,6 +1087,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'move-watch' => 'Čuovo dán siiddu',
 'movepagebtn' => 'Sirdde siiddu',
 'pagemovedsub' => 'Sirdin lihkosmuvai',
+'talkexists' => "'''Siiddu sirdin iešalddes lihkosmuvai, earret siiddu ságastallansiiddu sirdin daningo ođđa bájilčálas lea jo ságastallansiidu. Leage buorre ja sirdde ságastallamiid manuálalažžat.'''",
 'movedto' => 'Sirdojuvvun ođđa bájilčállagin',
 'movetalk' => 'Sirdde maid ságastallansiiddu.',
 'movelogpage' => 'Sirdinlogga',
@@ -1048,6 +1098,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'delete_and_move_confirm' => 'Sihko siiddu',
 
 # Export
+'export' => 'Olggosfievrrit siidduid',
 'export-addcat' => 'Lasit',
 'export-download' => 'Vurke fiillan',
 
@@ -1057,6 +1108,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'allmessagescurrent' => 'Dálá teaksta',
 
 # Thumbnails
+'thumbnail-more' => 'Stuorit',
 'filemissing' => 'Fiila váilo',
 
 # Special:Import
@@ -1123,6 +1175,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'tooltip-recreate' => 'Álggat dán siiddu ođđasit',
 
 # Attribution
+'anonymous' => '{{SITENAME}}-siiddu anonyma {{PLURAL:$1|geavaheaddji|geavaheaddjit}}',
 'siteuser' => '{{GRAMMAR:genitive|{{SITENAME}}}} geavaheaddji $1',
 'others' => 'earát',
 'siteusers' => '{{GRAMMAR:genitive|{{SITENAME}}}} geavaheaddji(t) $1',
@@ -1139,6 +1192,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'nextdiff' => 'Čuovvovaš rievdadus →',
 
 # Media information
+'thumbsize' => 'Thumbnail sturrodat:',
 'widthheightpage' => '$1 × $2, $3 siiddut',
 
 # Special:NewFiles
@@ -1219,6 +1273,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'scarytranscludetoolong' => '[Čujuhus lea menddo guhkki]',
 
 # Delete conflict
+'deletedwhileediting' => "'''Cuiggodus''': Dát siidu lea sihkkojuvvon das maŋŋá go leat álggahan ođasmahttit dan!",
 'recreate' => 'Álggat ođđasit',
 
 # action=purge
@@ -1240,7 +1295,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'table_pager_empty' => 'Eai bohtosat',
 
 # Auto-summaries
-'autoredircomment' => 'Ođđasitstivrejuvvo siidui [[$1]]',
+'autoredircomment' => 'Ođđasitstivrejuvvo [[$1]]-siidui',
 'autosumm-new' => 'Ođđa siidu: $1',
 
 # Size units
@@ -1267,4 +1322,9 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 # Special:SpecialPages
 'specialpages' => 'Erenomáš siiddut',
 
+# New logging system
+'logentry-delete-delete' => '$1 sihkui siiddu $3',
+'logentry-move-move' => '$1 sirddii siiddu $3 nammii $4',
+'logentry-move-move_redir-noredirect' => '$1 sirddii siiddu $3 nammii $4 iige ráhkadan ođđasitstivrema',
+
 );
index 4fc6564..d7d74c0 100644 (file)
@@ -670,7 +670,7 @@ Informacion: (curt) = quiíxde vercion currentua,
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|quiix|quíix}}',
 'recentchanges' => 'Camjöx cmaa',
-'recentchangestext' => 'Caitom camjöx cmaa quiíx zode Wiki zo jan páhina iti.',
+'recentchanges-summary' => 'Caitom camjöx cmaa quiíx zode Wiki zo jan páhina iti.',
 'recentchanges-feed-description' => 'Caitom camjöx cmaa quiíx zode Wiki zo jan fiiyt iti.',
 'rcnote' => "!-cmaa coccebj {{PLURAL:$1|'''1''' quiixde|'''$1''' hunquiíxde}} {{PLURAL:$2|'''1''' hunzaah|'''$2''' hunixaáp}} zo iti, $3 'de.",
 'rcnotefrom' => "!-cmaa coccebj quiíx zode '''$2''' (plusöxiti '''$1''' visi).",
index 37e544a..1b99be8 100644 (file)
@@ -704,6 +704,8 @@ Kėtė admėnėstratuorē šėtom pruojekte vėsdar galės pasėiktė pasliepta
 
 # Diffs
 'history-title' => 'Poslapė „$1“ istuorėjė',
+'difference-title' => '$1: Skėrtoms terp redakcėju',
+'difference-title-multipage' => '$1 ė $2: Skėrtoms terp poslapiu',
 'lineno' => 'Eilotė $1:',
 'compareselectedversions' => 'Palīgintė pasėrinktas versėjės',
 'editundo' => 'atšauktė',
@@ -897,7 +899,7 @@ Ana gal sodarītė ne daugiau kāp $1 {{PLURAL:$1|sėmbuolis|sėmbuolē|sėmbuol
 'nchanges' => '$1 {{PLURAL:$1|pakeitėms|pakeitėmā|pakeitėmu}}',
 'recentchanges' => 'Vielībė̅jė pakeitėmā',
 'recentchanges-legend' => 'Vielībuju pakeitėmu pasėrinkėmā',
-'recentchangestext' => 'Tamė poslapī īr patīs vielībė̅ jė paketėmā tom pruojėktė.',
+'recentchanges-summary' => 'Tamė poslapī īr patīs vielībė̅ jė paketėmā tom pruojėktė.',
 'recentchanges-feed-description' => 'Keravuokėt patius vielībiausius pakeitėmus pruojektō tamė šaltėnī.',
 'recentchanges-label-newpage' => 'Šėto keitėmo sukurts naus poslapis',
 'recentchanges-label-minor' => 'Tas īr mažos pataisīms',
index c4ea0eb..52ab42f 100644 (file)
@@ -1536,7 +1536,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'nchanges' => '$1 {{PLURAL:$1|izmjena|izmjene|izmjena}}',
 'recentchanges' => 'Nedavne izmjene',
 'recentchanges-legend' => 'Postavke za Nedavne promjene',
-'recentchangestext' => 'Na ovoj stranici možete pratiti nedavne izmjene.',
+'recentchanges-summary' => 'Na ovoj stranici možete pratiti nedavne izmjene.',
 'recentchanges-feed-description' => 'Praćenje nedavnih izmjena na ovom wikiju u ovom feedu.',
 'recentchanges-label-newpage' => 'Ovom izmjenom je stvorena nova stranica',
 'recentchanges-label-minor' => 'Ovo je manja izmjena',
index 282e2b8..6cd98ab 100644 (file)
@@ -761,7 +761,7 @@ Izdar ad urtili ɣ isbidn n mayllan ɣ {{SITENAME}} .',
 'nchanges' => '$1 imbddln {{PLURAL:$1||s}}',
 'recentchanges' => 'Imbddeln imggura',
 'recentchanges-legend' => 'Tixtiɣitin (options) n imbddl imaynutn',
-'recentchangestext' => 'Ml imbddln imaynutn  n wiki ɣ tasna yad',
+'recentchanges-summary' => 'Ml imbddln imaynutn  n wiki ɣ tasna yad',
 'recentchanges-feed-description' => 'Tfr imbddln imggura n wiki yad ɣ usuddm',
 'recentchanges-label-newpage' => 'Ambddl ad ar iskar yakka yat tasna tamaynut.',
 'recentchanges-label-minor' => 'Imbddl ifssusn',
index 587aef4..d05a354 100644 (file)
@@ -1153,7 +1153,7 @@ $1",
 'mergelogpagetext' => 'එක් පිටු ඉතිහාසයක් තවකක් හා සමග ඉතා මෑතදී සිදුවූ ඒකාබද්ධ වීම් දැක්වෙන ලැයිස්තුවක් පහත වේ.',
 
 # Diffs
-'history-title' => '"$1"හි සංශෝධන ඉතිහාසය',
+'history-title' => '$1:  සංශෝධන ඉතිහාසය',
 'difference-multipage' => 'පිටු අතර වෙනස',
 'lineno' => 'පේළිය $1:',
 'compareselectedversions' => 'තෝරාගත් සංශෝධන සසඳන්න',
@@ -1514,7 +1514,7 @@ HTML ටැගයන් පිරික්සන්න.',
 'nchanges' => '$1 {{PLURAL:$1|වෙනස්වීම|වෙනස්වීම්}}',
 'recentchanges' => 'මෑත වෙනස්කිරීම්',
 'recentchanges-legend' => '‍නව වෙනස්වීම් සැකසුම් තෝරාගැනීම',
-'recentchangestext' => 'මෙම පිටුවේ විකියට සිදුකල ඉතා මෑත වෙනස්වීම් පසුහඹන්න.',
+'recentchanges-summary' => 'මෙම පිටුවේ විකියට සිදුකල ඉතා මෑත වෙනස්වීම් පසුහඹන්න.',
 'recentchanges-feed-description' => 'මෙම පෝෂකයෙහි විකියට බොහෝ මෑතදී සිදුකල වෙනස්වීම් හෙළිකරන්න.',
 'recentchanges-label-newpage' => 'මෙම සංස්කරණය නව පිටුවක් නිර්මාණය කරන ලදී',
 'recentchanges-label-minor' => 'මෙය සුළු සංස්කරණයකි',
index 2f568e9..71dc43c 100644 (file)
@@ -1242,9 +1242,9 @@ Uistite sa, že táto zmena zachová historickú kontinuitu zmien stránky.',
 'mergelogpagetext' => 'Dolu je zoznam posledných zlúčení jednej histórie revízií stránky do druhej.',
 
 # Diffs
-'history-title' => 'História revízií „$1“',
-'difference-title' => 'Rozdiel medzi revíziami „$1“',
-'difference-title-multipage' => 'Rozdiel medzi stránkami „$1“ a „$2“',
+'history-title' => ' $1: História revízií',
+'difference-title' => '$1: Rozdiel medzi revíziami',
+'difference-title-multipage' => '$1 a $2: Rozdiel medzi stránkami',
 'difference-multipage' => '(Rozdiel medzi stránkami)',
 'lineno' => 'Riadok $1:',
 'compareselectedversions' => 'Porovnať označené verzie',
@@ -1339,6 +1339,7 @@ Uistite sa, že táto zmena zachová historickú kontinuitu zmien stránky.',
 'prefs-beta' => 'Nové funkcie',
 'prefs-datetime' => 'Dátum a čas',
 'prefs-labs' => 'Laboratórne funkcie',
+'prefs-user-pages' => 'Stránky používateľa',
 'prefs-personal' => 'Profil',
 'prefs-rc' => 'Posledné úpravy',
 'prefs-watchlist' => 'Sledované stránky',
@@ -1599,7 +1600,7 @@ Musí obsahovať menej ako $1 {{PLURAL:$1|znak|znaky|znakov}}.',
 'nchanges' => '$1 {{PLURAL:$1|zmena|zmeny|zmien}}',
 'recentchanges' => 'Posledné úpravy',
 'recentchanges-legend' => 'Možnosti posledných zmien',
-'recentchangestext' => 'Pomocou tejto stránky sledujete posledné úpravy wiki.',
+'recentchanges-summary' => 'Pomocou tejto stránky sledujete posledné úpravy wiki.',
 'recentchanges-feed-description' => 'Sledovať posledné úpravy tejto wiki týmto kanálom.',
 'recentchanges-label-newpage' => 'Táto úprava vytvorila novú stránku.',
 'recentchanges-label-minor' => 'Toto je drobná úprava',
@@ -1805,14 +1806,15 @@ Ak problém pretrváva, kontaktujte [[Special:ListUsers/sysop|správcu systému]
 'backend-fail-writetemp' => 'Nebolo možné zapísať do dočasného súboru.',
 'backend-fail-closetemp' => 'Nebolo možné zatvoriť dočasný súbor.',
 'backend-fail-read' => 'Nebolo možné prečítať súbor „$1“.',
-'backend-fail-create' => 'Nebolo možné vytvoriť súbor „$1“.',
-'backend-fail-maxsize' => 'Súbor $1 nie je možné vytvoriť, pretože je väčší ako {{PLURAL:$2|$2 bajtov|$2 bajt}}.',
+'backend-fail-create' => 'Nebolo možné zapísať súbor $1.',
+'backend-fail-maxsize' => 'Nie je možné zapísať súbor  $1  pretože je väčší ako  {{PLURAL:$2| jeden byte| $2  bajtov}}.',
 'backend-fail-readonly' => 'Úložisko „$1“ je momentálne v režime len na čítanie. Udaný dôvod: „$2“',
 'backend-fail-synced' => 'Súbor „$1“ je v nekonzistentnom stave v rámci vnútorného úložiska',
 'backend-fail-connect' => 'Nepodarilo sa pripojiť k úložisku „$1“.',
 'backend-fail-internal' => 'Vyskytla sa neznáma chyba v úložisku „$1“.',
 'backend-fail-contenttype' => 'Nebolo možné určiť typ obsahu súboru, ktorý sa má uložiť na „$1“.',
 'backend-fail-batchsize' => 'Do úložiska bola zaslaná dávka s $1 {{PLURAL:$1|operáciou|operáciami}}; limit je $2 {{PLURAL:$2|operácia|operácie|operácií}}.',
+'backend-fail-usable' => 'Nie je možné zapísať súbor  $1  kvôli nedostatočným povoleniam alebo chýbajúcim adresárom/kontajnerom.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Nepodarilo sa pripojiť k žurnálovej databáze úložiska „$1“.',
@@ -1874,7 +1876,6 @@ Aby bolo zabezpečenie optimálne, img_auth.php je vypnutý.',
 'http-curl-error' => 'Chyba pri sťahovaní URL: $1',
 'http-host-unreachable' => 'URL nie je dostupný',
 'http-bad-status' => 'Počas požiadavky HTTP nastal problém: $1 $2',
-'http-truncated-body' => 'Telo požiadavky bolo prijaté iba čiastočne.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Nedostupný URL',
index 9311a1c..6f50a4d 100644 (file)
@@ -1156,9 +1156,9 @@ Upoštevajte, da bo uporaba navigacijskih gumbov ponastavila ta stolpec.',
 'mergelogpagetext' => 'Prikazan je seznam nedavnih združevanj zgodovin strani.',
 
 # Diffs
-'history-title' => 'Zgodovina strani »$1«',
-'difference-title' => 'Razlika med redakcijama »$1«',
-'difference-title-multipage' => 'Razlika med stranema »$1« in »$2«',
+'history-title' => '$1: Zgodovina strani',
+'difference-title' => '$1: Razlika med redakcijama',
+'difference-title-multipage' => '$1 in $2: Razlika med stranema',
 'difference-multipage' => '(Razlika med stranmi)',
 'lineno' => 'Vrstica $1:',
 'compareselectedversions' => 'Primerjaj izbrani redakciji',
@@ -1255,6 +1255,7 @@ Upoštevajte, da so njihovi podatki vsebine {{GRAMMAR:rodilnik|{{SITENAME}}}} mo
 'prefs-beta' => 'Betafunkcije',
 'prefs-datetime' => 'Datum in čas',
 'prefs-labs' => 'Funkcije laboratorija',
+'prefs-user-pages' => 'Uporabniške strani',
 'prefs-personal' => 'Podatki o uporabniku',
 'prefs-rc' => 'Zadnje spremembe',
 'prefs-watchlist' => 'Spisek nadzorov',
@@ -1520,7 +1521,7 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'nchanges' => '$1 {{PLURAL:$1|sprememba|spremembi|spremembe|sprememb|sprememb}}',
 'recentchanges' => 'Zadnje spremembe',
 'recentchanges-legend' => 'Možnosti zadnjih sprememb',
-'recentchangestext' => 'Na tej strani lahko spremljajte najnedavnejše spremembe wikija.',
+'recentchanges-summary' => 'Na tej strani lahko spremljajte najnedavnejše spremembe wikija.',
 'recentchanges-feed-description' => 'Spremljajte najnovejše spremembe wikija prek tega vira.',
 'recentchanges-label-newpage' => 'S tem urejanjem je bila ustvarjena nova stran',
 'recentchanges-label-minor' => 'Manjše urejanje',
@@ -1733,14 +1734,15 @@ Prosimo, preverite veljavnost in dostopnost naslova URL ter poskusite ponovno.
 'backend-fail-writetemp' => 'Ne morem pisati v začasno datoteko.',
 'backend-fail-closetemp' => 'Ne morem zapreti začasne datoteke.',
 'backend-fail-read' => 'Ne morem brati datoteke $1.',
-'backend-fail-create' => 'Ne morem ustvariti datoteke $1.',
-'backend-fail-maxsize' => 'Ne morem ustvariti datoteke $1, kjer je večja od {{PLURAL:$2|$2 bajta|$2 bajtov}}.',
+'backend-fail-create' => 'Ne morem zapisati datoteke $1.',
+'backend-fail-maxsize' => 'Ne morem zapisati datoteke $1, ker je večja od $2 {{PLURAL:$2|bajta|bajtov}}.',
 'backend-fail-readonly' => 'Skladiščno zaledje »$1« je trenutno označeno samo za branje. Podan razlog je: »$2«',
 'backend-fail-synced' => 'Datoteka »$1« je v neskladnem stanju z notranjimi skladiščnimi zaledji',
 'backend-fail-connect' => 'Ne morem se povezati s skladiščnim zaledjem »$1«.',
 'backend-fail-internal' => 'V skladiščnem zaledju »$1« je prišlo do neznane napake.',
 'backend-fail-contenttype' => 'Ne morem določiti vrsto vsebine datoteke za shranjevanje pri »$1«.',
 'backend-fail-batchsize' => 'Skladiščnemu zaledju je dana vrsta $1 {{PLURAL:$1|datotečne operacije|datotečnih operacij}}; omejitev {{PLURAL:$2|je $2 operacija|sta $2 operaciji|so $2 operacije|je $2 operacij}}.',
+'backend-fail-usable' => 'Ne morem zapisati datoteke $1 zaradi nezadostnih dovoljenj ali manjkajočega imenika/vsebnika.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Ne morem se povezati z listovno zbirko podatkov za skladiščno zaledje »$1«.',
@@ -1803,7 +1805,6 @@ Za optimalno varnost je img_auth.php onemogočen.',
 'http-curl-error' => 'Napaka pri doseganju URL: $1',
 'http-host-unreachable' => 'Ni mogoče doseči URL.',
 'http-bad-status' => 'Med zahtevo HTTP je prišlo do težave: $1 $2',
-'http-truncated-body' => 'Prejeli smo samo del telesa zahteve.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Ni možno doseči URL',
index 24e9a02..ae7c2e5 100644 (file)
@@ -1007,7 +1007,7 @@ Stelle sicher, doaß de Versionsgeschichte anner Seite historisch korrekt ies.',
 'nchanges' => '$1 {{PLURAL:$1|Ännerong|Änneronga}}',
 'recentchanges' => 'Foarchte Verändarunga',
 'recentchanges-legend' => 'Oazeigeoptiona',
-'recentchangestext' => "Uff dieser Seite koanst du de letzta Änderunga uff '''{{SITENAME}}''' noachverfulga.",
+'recentchanges-summary' => "Uff dieser Seite koanst du de letzta Änderunga uff '''{{SITENAME}}''' noachverfolga.",
 'recentchanges-feed-description' => 'Verfolge miet diesem Feed de letzta Änneronga ei {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Neue Seite',
 'recentchanges-label-minor' => 'Klenne Änderung',
index 952dcf3..e92fe25 100644 (file)
@@ -848,7 +848,7 @@ E-mailkaada mala sheegaayo markii ee dadka kale kula soo xiriirayaan.',
 'nchanges' => '$1 {{PLURAL:$1|bedelka|bedelada}}',
 'recentchanges' => 'Isbedelada dhow',
 'recentchanges-legend' => 'Dooqyada isbedelada dhow',
-'recentchangestext' => 'Dabagal isbedelada dhow ee wikiga oo ku dhacay bogaan.',
+'recentchanges-summary' => 'Dabagal isbedelada dhow ee wikiga ee ku dhacay bogaan.',
 'recentchanges-feed-description' => 'Dabagal isbedelada dhow ee wikiga oo ku dhacay feedkaan',
 'recentchanges-label-newpage' => 'Wax bedelkaan wuxuu sameeyay bog cusub',
 'recentchanges-label-minor' => 'Kan waa bedel yar',
index eecf85f..3ca1e95 100644 (file)
@@ -63,6 +63,7 @@ $namespaceGenderAliases = array(
 );
 
 $specialPageAliases = array(
+       'Activeusers'               => array( 'PërdoruesitAktivë' ),
        'Allmessages'               => array( 'TëgjithaMesazhet' ),
        'Allpages'                  => array( 'TëgjithaFaqet' ),
        'Ancientpages'              => array( 'FaqetAntike' ),
@@ -71,7 +72,9 @@ $specialPageAliases = array(
        'Blockme'                   => array( 'BllokomMua' ),
        'Booksources'               => array( 'BurimeteLibrave' ),
        'Categories'                => array( 'Kategori' ),
+       'ChangeEmail'               => array( 'NdryshoEmail' ),
        'ChangePassword'            => array( 'NdryshoFjalëkalimin' ),
+       'ComparePages'              => array( 'KrahasoFaqet' ),
        'Confirmemail'              => array( 'KonfirmoEmail' ),
        'Contributions'             => array( 'Kontributet' ),
        'CreateAccount'             => array( 'HapLlogari' ),
@@ -125,6 +128,10 @@ $specialPageAliases = array(
 
 $magicWords = array(
        'redirect'                => array( '0', '#RIDREJTO', '#REDIRECT' ),
+       'notoc'                   => array( '0', '__JOTP__', '__NOTOC__' ),
+       'nogallery'               => array( '0', '__JOGALERI__', '__NOGALLERY__' ),
+       'toc'                     => array( '0', '__TP__', '__TOC__' ),
+       'noeditsection'           => array( '0', '__JOREDAKTIMSEKSIONI__', '__NOEDITSECTION__' ),
        'currentmonth'            => array( '1', 'MUAJIMOMENTAL', 'MUAJIMOMENTAL2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentmonth1'           => array( '1', 'MUAJIMOMENTAL1', 'CURRENTMONTH1' ),
        'currentmonthname'        => array( '1', 'EMRIIMUAJITMOMENTAL', 'CURRENTMONTHNAME' ),
@@ -145,10 +152,12 @@ $magicWords = array(
        'numberofpages'           => array( '1', 'NUMRIFAQEVE', 'NUMBEROFPAGES' ),
        'numberofarticles'        => array( '1', 'NUMRIIARTIKUJVE', 'NUMBEROFARTICLES' ),
        'numberoffiles'           => array( '1', 'NUMRIISKEDAVE', 'NUMBEROFFILES' ),
-       'numberofusers'           => array( '1', 'NUMRIPËRDORUESVE', 'NUMBEROFUSERS' ),
+       'numberofusers'           => array( '1', 'NUMRIIPËRDORUESVE', 'NUMRIPËRDORUESVE', 'NUMBEROFUSERS' ),
+       'numberofactiveusers'     => array( '1', 'NUMRIIPËRDORUESVEAKTIVË', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'           => array( '1', 'NUMRIREDAKTIMEVE', 'NUMBEROFEDITS' ),
        'numberofviews'           => array( '1', 'NUMRIISHIKIMEVE', 'NUMBEROFVIEWS' ),
        'pagename'                => array( '1', 'EMRIFAQES', 'PAGENAME' ),
+       'namespace'               => array( '1', 'HAPËSIRA', 'NAMESPACE' ),
        'fullpagename'            => array( '1', 'EMRIIPLOTËIFAQES', 'FULLPAGENAME' ),
        'fullpagenamee'           => array( '1', 'EMRIIPLOTËIFAQESE', 'FULLPAGENAMEE' ),
        'subpagename'             => array( '1', 'EMRIINËNFAQES', 'SUBPAGENAME' ),
@@ -163,7 +172,7 @@ $magicWords = array(
        'img_right'               => array( '1', 'djathtas', 'right' ),
        'img_left'                => array( '1', 'majtas', 'left' ),
        'img_none'                => array( '1', 's\'ka', 'none' ),
-       'img_center'              => array( '1', 'qëndër', 'qëndrore', 'center', 'centre' ),
+       'img_center'              => array( '1', 'qendër', 'qendrore', 'center', 'centre' ),
        'img_framed'              => array( '1', 'i_kornizuar', 'pa_kornizë', 'kornizë', 'framed', 'enframed', 'frame' ),
        'img_page'                => array( '1', 'faqja=$1', 'faqja $1', 'page=$1', 'page $1' ),
        'img_upright'             => array( '1', 'lartdjathtas', 'lartdjathtas=$1', 'lartdjathtas $1', 'upright', 'upright=$1', 'upright $1' ),
@@ -175,15 +184,20 @@ $magicWords = array(
        'img_bottom'              => array( '1', 'fund', 'bottom' ),
        'img_text_bottom'         => array( '1', 'tekst-fund', 'text-bottom' ),
        'img_link'                => array( '1', 'lidhje=$1', 'link=$1' ),
-       'sitename'                => array( '1', 'EMRIIFAQES', 'SITENAME' ),
+       'sitename'                => array( '1', 'EMRIISAJTIT', 'SITENAME' ),
        'localurl'                => array( '0', 'URLLOKALE', 'LOCALURL:' ),
        'server'                  => array( '0', 'SERVERI', 'SERVER' ),
        'servername'              => array( '0', 'EMRIISERVERIT', 'SERVERNAME' ),
        'grammar'                 => array( '0', 'GRAMATIKA:', 'GRAMMAR:' ),
+       'gender'                  => array( '0', 'GJINIA:', 'GENDER:' ),
        'currentweek'             => array( '1', 'JAVAMOMENTALE', 'CURRENTWEEK' ),
        'plural'                  => array( '0', 'SHUMËS:', 'PLURAL:' ),
+       'fullurl'                 => array( '0', 'URLEPLOTË', 'FULLURL:' ),
        'language'                => array( '0', '#GJUHA:', '#LANGUAGE:' ),
+       'numberofadmins'          => array( '1', 'NUMRIIADMINISTRUESVE', 'NUMBEROFADMINS' ),
        'special'                 => array( '0', 'speciale', 'special' ),
+       'hiddencat'               => array( '1', '__KATEGORIEFSHEHUR__', '__HIDDENCAT__' ),
+       'pagesize'                => array( '1', 'MADHËSIAEFAQES', 'PAGESIZE' ),
 );
 
 $datePreferences = array(
@@ -1498,7 +1512,7 @@ Kjo informatë është publike.',
 'nchanges' => '$1 {{PLURAL:$1|ndryshim|ndryshime}}',
 'recentchanges' => 'Ndryshime së fundmi',
 'recentchanges-legend' => 'Zgjedhjet e ndryshimeve momentale',
-'recentchangestext' => 'Ndiqni ndryshime së fundmi tek kjo faqe.',
+'recentchanges-summary' => 'Ndiqni ndryshime së fundmi tek kjo faqe.',
 'recentchanges-feed-description' => 'Ndjek ndryshimet më të fundit në wiki tek kjo fushë.',
 'recentchanges-label-newpage' => 'Ky redaktim krijoi një faqe të re',
 'recentchanges-label-minor' => 'Ky është një editim i vogël',
index 1863631..2e95365 100644 (file)
@@ -29,7 +29,7 @@
  */
 
 $namespaceNames = array(
-       NS_MEDIA            => 'Медија',
+       NS_MEDIA            => 'Медиј',
        NS_SPECIAL          => 'Посебно',
        NS_TALK             => 'Разговор',
        NS_USER             => 'Корисник',
@@ -66,6 +66,7 @@ $namespaceAliases = array(
        'Kategorija'              => NS_CATEGORY,
        'Razgovor_o_kategoriji'   => NS_CATEGORY_TALK,
 
+       'Медија'                  => NS_MEDIA,
        'Слика'                   => NS_FILE,
        'Разговор_о_слици'        => NS_FILE_TALK,
        'МедијаВики'              => NS_MEDIAWIKI,
@@ -723,13 +724,13 @@ $1',
 # General errors
 'error' => 'Грешка',
 'databaseerror' => 'Грешка у бази података',
-'dberrortext' => 'Ð\94оÑ\88ло Ñ\98е Ð´Ð¾ Ñ\81инÑ\82акÑ\81не грешке у бази.
+'dberrortext' => 'Ð\94оÑ\88ло Ñ\98е Ð´Ð¾ Ñ\81инÑ\82акÑ\82иÑ\87ке грешке у бази.
 Можда се ради о грешци у софтверу.
 Последњи покушај упита је гласио:
 <blockquote><tt>$1</tt></blockquote>
 унутар функције „<tt>$2</tt>“.
 База података је пријавила грешку „<tt>$3: $4</tt>“.',
-'dberrortextcl' => 'Ð\94оÑ\88ло Ñ\98е Ð´Ð¾ Ñ\81инÑ\82акÑ\81не грешке у бази.
+'dberrortextcl' => 'Ð\94оÑ\88ло Ñ\98е Ð´Ð¾ Ñ\81инÑ\82акÑ\82иÑ\87ке грешке у бази.
 Последњи покушај упита је гласио:
 „$1“
 унутар функције „$2“.
@@ -798,6 +799,8 @@ $2',
 'filereadonlyerror' => 'Не могу да изменим датотеку „$1“ јер је ризница „$2“ у режиму за читање.
 
 Администратор који ју је закључао понудио је следеће објашњење: „$3“.',
+'invalidtitle-knownnamespace' => 'Неисправан наслов с именским простором „$2“ и текстом „$3“',
+'invalidtitle-unknownnamespace' => 'Неисправан наслов с именским простором бр. $1 и текстом „$2“',
 
 # Virus scanner
 'virus-badscanner' => "Неисправна поставка: непознати скенер за вирусе: ''$1''",
@@ -999,7 +1002,7 @@ $2
 'minoredit' => 'мања измена',
 'watchthis' => 'надгледај ову страницу',
 'savearticle' => 'Сачувај страницу',
-'preview' => 'Претпреглед',
+'preview' => 'Преглед',
 'showpreview' => 'Прикажи претпреглед',
 'showlivepreview' => 'Тренутни преглед',
 'showdiff' => 'Прикажи измене',
@@ -1195,6 +1198,12 @@ $2
 'parser-template-loop-warning' => 'Откривена је петља шаблона: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Дубина укључивања шаблона је прекорачена ($1)',
 'language-converter-depth-warning' => 'Прекорачена је граница дубине језичког претварача ($1)',
+'node-count-exceeded-category' => 'Странице у којима је прекорачен број чворова',
+'node-count-exceeded-warning' => 'Страница у којој је прекорачен број чворова',
+'expansion-depth-exceeded-category' => 'Странице у којима је прекорачена дубина проширења',
+'expansion-depth-exceeded-warning' => 'Страница у којој је прекорачена дубина проширења',
+'parser-unstrip-loop-warning' => 'Утврђена је петља',
+'parser-unstrip-recursion-limit' => 'Прекорачено је ограничење рекурзије ($1)',
 
 # "Undo" feature
 'undo-success' => 'Измена се може вратити.
@@ -1236,7 +1245,7 @@ $2
 
 # Revision feed
 'history-feed-title' => 'Историја измена',
-'history-feed-description' => 'Историја измена ове странице',
+'history-feed-description' => 'Историја измена ове странице на викију',
 'history-feed-item-nocomment' => '$1 у $2',
 'history-feed-empty' => 'Тражена страница не постоји.
 Могуће да је обрисана с викија или је преименована.
@@ -1375,6 +1384,8 @@ $1",
 
 # Diffs
 'history-title' => 'Историја измена за „$1“',
+'difference-title' => 'Разлика између измена странице „$1“',
+'difference-title-multipage' => 'Разлика између страница „$1“ и „$2“',
 'difference-multipage' => '(разлике између страница)',
 'lineno' => 'Ред $1:',
 'compareselectedversions' => 'Упореди изабране измене',
@@ -1739,7 +1750,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|измена|измене|измена}}',
 'recentchanges' => 'Скорашње измене',
 'recentchanges-legend' => 'Поставке скорашњих измена',
-'recentchangestext' => 'Пратите скорашње измене на овој страници.',
+'recentchanges-summary' => 'Пратите скорашње измене на овој страници.',
 'recentchanges-feed-description' => 'Пратите скорашње измене уз помоћ овог довода.',
 'recentchanges-label-newpage' => 'Нова страница',
 'recentchanges-label-minor' => 'Мања измена',
@@ -2729,7 +2740,7 @@ $1',
 # Block/unblock
 'autoblockid' => 'Самоблокирање #$1',
 'block' => 'Блокирај корисника',
-'unblock' => 'Ð\94еблокирај корисника',
+'unblock' => 'Ð\9eдблокирај корисника',
 'blockip' => 'Блокирај корисника',
 'blockip-title' => 'Блокирање корисника',
 'blockip-legend' => 'Блокирај корисника',
@@ -2750,7 +2761,7 @@ $1',
 ** Неприхватљиво корисничко име',
 'ipb-hardblock' => 'Забрани пријављеним корисницима да уређују с ове ИП адресе',
 'ipbcreateaccount' => 'Онемогући отварање налога',
-'ipbemailban' => 'Забрани члану слање е-порука',
+'ipbemailban' => 'Забрани кориснику слање е-порука',
 'ipbenableautoblock' => 'Аутоматски блокирај последњу ИП адресу овог корисника и све даљње адресе с којих покуша да уређује',
 'ipbsubmit' => 'Блокирај овог корисника',
 'ipbother' => 'Друго време:',
@@ -2769,11 +2780,11 @@ $1',
 'ipb-blockingself' => 'Овом радњом ћете блокирати себе! Јесте ли сигурни да то желите?',
 'ipb-confirmhideuser' => 'Управо ћете блокирати корисника с укљученом могућношћу „сакриј корисника“. Овим ће корисничко име бити сакривено у свим списковима и извештајима. Желите ли то да урадите?',
 'ipb-edit-dropdown' => 'Уреди разлоге блокирања',
-'ipb-unblock-addr' => 'Ð\94еблокирај $1',
-'ipb-unblock' => 'Ð\94еблокирај корисничко име или ИП адресу',
+'ipb-unblock-addr' => 'Ð\9eдблокирај $1',
+'ipb-unblock' => 'Ð\9eдблокирај корисничко име или ИП адресу',
 'ipb-blocklist' => 'Погледај постојећа блокирања',
 'ipb-blocklist-contribs' => 'Доприноси за $1',
-'unblockip' => 'Ð\94еблокирај корисника',
+'unblockip' => 'Ð\9eдблокирај корисника',
 'unblockiptext' => 'Користите образац испод да бисте вратили право писања блокираној IP адреси или корисничком имену.',
 'ipusubmit' => 'Уклони ову блокаду',
 'unblocked' => '[[User:$1|$1]] је деблокиран',
@@ -2805,7 +2816,7 @@ $1',
 'ipblocklist-empty' => 'Списак блокирања је празан.',
 'ipblocklist-no-results' => 'Тражена ИП адреса или корисничко име није блокирано.',
 'blocklink' => 'блокирај',
-'unblocklink' => 'деблокирај',
+'unblocklink' => 'одблокирај',
 'change-blocklink' => 'промени блокирање',
 'contribslink' => 'доприноси',
 'emaillink' => 'пошаљи е-поруку',
@@ -2821,7 +2832,7 @@ $1',
 'blocklogtext' => 'Ово је дневник блокирања и деблокирања корисника.
 Аутоматски блокиране ИП адресе нису наведене.
 Текуће забране и блокирања можете наћи [[Special:BlockList|овде]].',
-'unblocklogentry' => '{{GENDER:|Ñ\98е Ð´ÐµÐ±Ð»Ð¾ÐºÐ¸Ñ\80ао|Ñ\98е Ð´ÐµÐ±Ð»Ð¾ÐºÐ¸Ñ\80ала|Ñ\98е Ð´Ðµблокирао}} „$1“',
+'unblocklogentry' => '{{GENDER:|Ñ\98е Ð¾Ð´Ð±Ð»Ð¾ÐºÐ¸Ñ\80ао|Ñ\98е Ð¾Ð´Ð±Ð»Ð¾ÐºÐ¸Ñ\80ала|Ñ\98е Ð¾Ð´блокирао}} „$1“',
 'block-log-flags-anononly' => 'само анонимни корисници',
 'block-log-flags-nocreate' => 'онемогућено отварање налога',
 'block-log-flags-noautoblock' => 'аутоматско блокирање је онемогућено',
@@ -3260,7 +3271,7 @@ $1',
 
 # Patrol log
 'patrol-log-page' => 'Дневник патролирања',
-'patrol-log-header' => 'Ð\9eво Ñ\98е Ð¸Ñ\81Ñ\82оÑ\80иÑ\98а Ð¿Ñ\80егледаних измена.',
+'patrol-log-header' => 'Ð\9eво Ñ\98е Ð´Ð½ÐµÐ²Ð½Ð¸Ðº Ð¿Ð°Ñ\82Ñ\80олиÑ\80аних измена.',
 'log-show-hide-patrol' => '$1 дневник патролирања',
 
 # Image deletion
@@ -3917,7 +3928,7 @@ $5
 
 # Delete conflict
 'deletedwhileediting' => "'''Упозорење''': ова страница је обрисана након што сте почели с уређивањем!",
-'confirmrecreate' => "[[User:$1|$1]] ([[User talk:$1|разговор]]) {{GENDER:$1|је обрисао|је обрисала|обриса}} ову страницу након што сте почели да је уређујете, са следећим разлогом:
+'confirmrecreate' => "[[User:$1|$1]] ([[User talk:$1|разговор]]) {{GENDER:$1|је обрисао|је обрисала|је обрисао}} ову страницу након што сте почели да је уређујете из следећег разлога:
 : ''$2''
 Потврдите да стварно желите да направите страницу.",
 'confirmrecreate-noreason' => 'Корисник [[User:$1|$1]] ([[User talk:$1|разговор]]) је обрисао ову страницу након што сте почели да га уређујете. Потврдите да стварно желите да поново направите ову страницу.',
index aea9fb8..dec59d1 100644 (file)
  */
 
 $namespaceNames = array(
-       NS_MEDIA            => 'Medija',
+       NS_MEDIA            => 'Medij',
        NS_SPECIAL          => 'Posebno',
        NS_TALK             => 'Razgovor',
        NS_USER             => 'Korisnik',
        NS_USER_TALK        => 'Razgovor_sa_korisnikom',
        NS_PROJECT_TALK     => 'Razgovor_o_$1',
-       NS_FILE             => 'Slika',
-       NS_FILE_TALK        => 'Razgovor_o_slici',
-       NS_MEDIAWIKI        => 'MedijaViki',
-       NS_MEDIAWIKI_TALK   => 'Razgovor_o_MedijaVikiju',
+       NS_FILE             => 'Datoteka',
+       NS_FILE_TALK        => 'Razgovor_o_datoteci',
+       NS_MEDIAWIKI        => 'Medijaviki',
+       NS_MEDIAWIKI_TALK   => 'Razgovor_o_Medijavikiju',
        NS_TEMPLATE         => 'Šablon',
        NS_TEMPLATE_TALK    => 'Razgovor_o_šablonu',
        NS_HELP             => 'Pomoć',
@@ -58,6 +58,10 @@ $namespaceAliases = array(
        'Разговор_о_помоћи'       => NS_HELP_TALK,
        'Категорија'              => NS_CATEGORY,
        'Разговор_о_категорији'   => NS_CATEGORY_TALK,
+
+       'Medija'                  => NS_MEDIA,
+       'Slika'                   => NS_FILE,
+       'Razgovor_o_slici'        => NS_FILE_TALK,
 );
 
 $extraUserToggles = array(
@@ -703,6 +707,8 @@ Navedeni razlog: ''$2''.",
 'filereadonlyerror' => 'Ne mogu da izmenim datoteku „$1“ jer je riznica „$2“ u režimu za čitanje.
 
 Administrator koji ju je zaključao ponudio je sledeće objašnjenje: „$3“.',
+'invalidtitle-knownnamespace' => 'Neispravan naslov s imenskim prostorom „$2“ i tekstom „$3“',
+'invalidtitle-unknownnamespace' => 'Neispravan naslov s imenskim prostorom br. $1 i tekstom „$2“',
 
 # Virus scanner
 'virus-badscanner' => "Neispravna postavka: nepoznati skener za viruse: ''$1''",
@@ -1001,6 +1007,7 @@ Prilagođene stranice CSS i javaskript počinju malim slovom, npr. {{ns:user}}:F
 'note' => "'''Napomena:'''",
 'previewnote' => "'''Imajte u vidu da je ovo samo pregled.'''
 Vaše izmene još nisu sačuvane!",
+'continue-editing' => 'Nastavi uređivanje',
 'previewconflict' => 'Ovaj pregled oslikava kako će tekst u tekstualnom okviru izgledati.',
 'session_fail_preview' => "'''Nismo mogli da obradimo vašu izmenu zbog gubitka podataka sesije.'''
 Pokušajte ponovo.
@@ -1099,6 +1106,12 @@ Ovakve argumente bi trebalo izbegavati.",
 'parser-template-loop-warning' => 'Otkrivena je petlja šablona: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Dubina uključivanja šablona je prekoračena ($1)',
 'language-converter-depth-warning' => 'Prekoračena je granica dubine jezičkog pretvarača ($1)',
+'node-count-exceeded-category' => 'Stranice u kojima je prekoračen broj čvorova',
+'node-count-exceeded-warning' => 'Stranica u kojoj je prekoračen broj čvorova',
+'expansion-depth-exceeded-category' => 'Stranice u kojima je prekoračena dubina proširenja',
+'expansion-depth-exceeded-warning' => 'Stranica u kojoj je prekoračena dubina proširenja',
+'parser-unstrip-loop-warning' => 'Utvrđena je petlja',
+'parser-unstrip-recursion-limit' => 'Prekoračeno je ograničenje rekurzije ($1)',
 
 # "Undo" feature
 'undo-success' => 'Izmena se može vratiti.
@@ -1244,7 +1257,7 @@ Pogledajte istoriju.',
 
 # Suppression log
 'suppressionlog' => 'Istorija sakrivanja',
-'suppressionlogtext' => 'Ispod se nalazi spisak brisanja i blokiranja koji uključuje sadržaj sakriven od administratora. Pogledajte [[Special:BlockList|spisak blokiranih IP adresa]] za pregled važećih zabrana i blokiranja.',
+'suppressionlogtext' => 'Ispod se nalazi spisak brisanja i blokiranja koji uključuje sadržaj sakriven od administratora. Tekuće zabrane i blokiranja možete naći [[Special:BlockList|ovde]].',
 
 # History merging
 'mergehistory' => 'Spoji istorije stranica',
@@ -1279,6 +1292,8 @@ Korišćenje navigacionih veza će poništiti ovu kolonu.',
 
 # Diffs
 'history-title' => 'Istorija izmena za „$1“',
+'difference-title' => 'Razlika između izmena stranice „$1“',
+'difference-title-multipage' => 'Razlika između stranica „$1“ i „$2“',
 'difference-multipage' => '(razlike između stranica)',
 'lineno' => 'Red $1:',
 'compareselectedversions' => 'Uporedi izabrane izmene',
@@ -1643,7 +1658,7 @@ Ako izaberete da ga unesete, ono će biti korišćeno za pripisivanje vašeg rad
 'nchanges' => '$1 {{PLURAL:$1|izmena|izmene|izmena}}',
 'recentchanges' => 'Skorašnje izmene',
 'recentchanges-legend' => 'Postavke skorašnjih izmena',
-'recentchangestext' => 'Pratite skorašnje izmene na ovoj stranici.',
+'recentchanges-summary' => 'Ovde pratite najskorije izmene na vikiju.',
 'recentchanges-feed-description' => 'Pratite skorašnje izmene uz pomoć ovog dovoda.',
 'recentchanges-label-newpage' => 'Nova stranica',
 'recentchanges-label-minor' => 'Manja izmena',
@@ -2215,6 +2230,11 @@ Možda sadrži znakove koji se ne mogu koristiti u naslovima.',
 'allpages-bad-ns' => '{{SITENAME}} nema imenski prostor „$1“.',
 'allpages-hide-redirects' => 'Sakrij preusmerenja',
 
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Gledate keširanu verziju ove stranice, koja može biti stara i do $1.',
+'cachedspecial-viewing-cached-ts' => 'Gledate keširanu verziju ove stranice, koja može da se razlikuje od trenutne.',
+'cachedspecial-refresh-now' => 'Pogledaj najnoviju.',
+
 # Special:Categories
 'categories' => 'Kategorije',
 'categoriespagetext' => '{{PLURAL:$1|Sledeća kategorija sadrži|Sledeće kategorije sadrže}} stranice ili datoteke.
@@ -2628,7 +2648,7 @@ Izveštaj o blokiranim korisnicima se nalazi ispod:',
 # Block/unblock
 'autoblockid' => 'Samoblokiranje #$1',
 'block' => 'Blokiraj korisnika',
-'unblock' => 'Deblokiraj korisnika',
+'unblock' => 'Odblokiraj korisnika',
 'blockip' => 'Blokiraj korisnika',
 'blockip-title' => 'Blokiranje korisnika',
 'blockip-legend' => 'Blokiraj korisnika',
@@ -2649,7 +2669,7 @@ Izaberite konkretan razlog ispod (primer: navođenje konkretnih stranica koje su
 ** Neprihvatljivo korisničko ime',
 'ipb-hardblock' => 'Zabrani prijavljenim korisnicima da uređuju s ove IP adrese',
 'ipbcreateaccount' => 'Onemogući otvaranje naloga',
-'ipbemailban' => 'Zabrani članu slanje e-poruka',
+'ipbemailban' => 'Zabrani korisniku slanje e-poruka',
 'ipbenableautoblock' => 'Automatski blokiraj poslednju IP adresu ovog korisnika i sve daljnje adrese s kojih pokuša da uređuje',
 'ipbsubmit' => 'Blokiraj ovog korisnika',
 'ipbother' => 'Drugo vreme:',
@@ -2664,15 +2684,15 @@ Izaberite konkretan razlog ispod (primer: navođenje konkretnih stranica koje su
 'badipaddress' => 'Neispravna IP adresa',
 'blockipsuccesssub' => 'Blokiranje je uspelo',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] je {{GENDER:$1|blokiran|blokirana|blokiran}}.<br />
-Pogledajte [[Special:BlockList|spisak blokiranih IP adresa]] za pregled blokiranja.',
+Blokiranja možete da pogledate [[Special:BlockList|ovde]].',
 'ipb-blockingself' => 'Ovom radnjom ćete blokirati sebe! Jeste li sigurni da to želite?',
 'ipb-confirmhideuser' => 'Upravo ćete blokirati korisnika s uključenom mogućnošću „sakrij korisnika“. Ovim će korisničko ime biti sakriveno u svim spiskovima i izveštajima. Želite li to da uradite?',
 'ipb-edit-dropdown' => 'Uredi razloge blokiranja',
-'ipb-unblock-addr' => 'Deblokiraj $1',
-'ipb-unblock' => 'Deblokiraj korisničko ime ili IP adresu',
+'ipb-unblock-addr' => 'Odblokiraj $1',
+'ipb-unblock' => 'Odblokiraj korisničko ime ili IP adresu',
 'ipb-blocklist' => 'Pogledaj postojeća blokiranja',
 'ipb-blocklist-contribs' => 'Doprinosi za $1',
-'unblockip' => 'Deblokiraj korisnika',
+'unblockip' => 'Odblokiraj korisnika',
 'unblockiptext' => 'Koristite obrazac ispod da biste vratili pravo pisanja blokiranoj IP adresi ili korisničkom imenu.',
 'ipusubmit' => 'Ukloni ovu blokadu',
 'unblocked' => '[[User:$1|$1]] je deblokiran',
@@ -2704,7 +2724,7 @@ Pogledajte [[Special:BlockList|spisak blokiranih IP adresa]] za pregled blokiran
 'ipblocklist-empty' => 'Spisak blokiranja je prazan.',
 'ipblocklist-no-results' => 'Tražena IP adresa ili korisničko ime nije blokirano.',
 'blocklink' => 'blokiraj',
-'unblocklink' => 'deblokiraj',
+'unblocklink' => 'odblokiraj',
 'change-blocklink' => 'promeni blokiranje',
 'contribslink' => 'doprinosi',
 'emaillink' => 'pošalji e-poruku',
@@ -2719,8 +2739,8 @@ Istorija sakrivanja se nalazi ispod:',
 'reblock-logentry' => '{{GENDER:|je promenio|je promenila|je promenio}} podešavanja za blokiranje {{GENDER:$1|korisnika|korisnice|korisnika}} [[$1]] s rokom isteka od $2 ($3)',
 'blocklogtext' => 'Ovo je dnevnik blokiranja i deblokiranja korisnika.
 Automatski blokirane IP adrese nisu navedene.
-Pogledajte [[Special:BlockList|spisak blokiranih IP adresa]].',
-'unblocklogentry' => '{{GENDER:|je deblokirao|je deblokirala|je deblokirao}} „$1“',
+Tekuće zabrane i blokiranja možete naći [[Special:BlockList|ovde]].',
+'unblocklogentry' => '{{GENDER:|je odblokirao|je odblokirala|je odblokirao}} „$1“',
 'block-log-flags-anononly' => 'samo anonimni korisnici',
 'block-log-flags-nocreate' => 'onemogućeno otvaranje naloga',
 'block-log-flags-noautoblock' => 'automatsko blokiranje je onemogućeno',
@@ -4011,6 +4031,9 @@ Trebalo bi da ste primili [{{SERVER}}{{SCRIPTPATH}}/COPYING primerak GNU-ove op
 'version-software' => 'Instalirani softver',
 'version-software-product' => 'Proizvod',
 'version-software-version' => 'Verzija',
+'version-entrypoints' => 'Adrese ulazne tačke',
+'version-entrypoints-header-entrypoint' => 'Ulazna tačka',
+'version-entrypoints-header-url' => 'Adresa',
 
 # Special:FilePath
 'filepath' => 'Putanja datoteke',
@@ -4199,4 +4222,15 @@ U suprotnom, poslužite se jednostavnim obrascem ispod. Vaš komentar će stajat
 'api-error-uploaddisabled' => 'Otpremanje je onemogućeno na ovom vikiju.',
 'api-error-verification-error' => 'Datoteka je oštećena ili ima neispravan nastavak.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|sekund|sekunde|sekundi}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minut|minuta|minuta}}',
+'duration-hours' => '$1 {{PLURAL:$1|sat|sata|sati}}',
+'duration-days' => '$1 {{PLURAL:$1|dan|dana|dana}}',
+'duration-weeks' => '$1 {{PLURAL:$1|nedelja|nedelje|nedelja}}',
+'duration-years' => '$1 {{PLURAL:$1|godina|godine|godina}}',
+'duration-decades' => '$1 {{PLURAL:$1|decenija|decenije|decenija}}',
+'duration-centuries' => '$1 {{PLURAL:$1|vek|veka|vekova}}',
+'duration-millennia' => '$1 {{PLURAL:$1|milenijum|milenijuma|milenijuma}}',
+
 );
index 12b6848..224877e 100644 (file)
@@ -1257,7 +1257,7 @@ Ju duur maximoal $1 {{PLURAL:$1|Teeken|Teekene}} loang weese.',
 'nchanges' => '$1 {{PLURAL:$1|Annerenge|Annerengen}}',
 'recentchanges' => 'Lääste Annerengen',
 'recentchanges-legend' => 'Anwiesoptione',
-'recentchangestext' => "Ap disse Siede koast du do lääste Annerengen ap '''{{SITENAME}}''' ättergunge.",
+'recentchanges-summary' => "Ap disse Siede koast du do lääste Annerengen ap '''{{SITENAME}}''' ättergunge.",
 'recentchanges-feed-description' => 'Ferfoulge mäd dissen Feed do lääste Annerengen in {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Näie Siede',
 'recentchanges-label-minor' => 'Litje Annerenge',
index 9d77317..13e8f59 100644 (file)
@@ -13,6 +13,7 @@
  * @author Kandar
  * @author Meursault2004
  * @author Mssetiadi
+ * @author Reedy
  * @author Urhixidur
  * @author לערי ריינהארט
  */
@@ -717,7 +718,7 @@ Alesanana ''\$2''.
 * Sasaran nudipeungpeuk : \$7
 
 Anjeun bisa nepungan \$1 atawa salasahiji [[{{MediaWiki:Grouppage-sysop}}|kuncén]] séjén pikeun nyawalakeun hal ieu.
-'''<u>Catet</u>''': yén anjeun teu bisa maké fungsi \"surélékan pamaké ieu\" mun anjeun teu ngadaptarkeun alamat surélék nu sah kana [[Special:Preferences|préferénsi pamaké]] anjeun.
+'''Catet''': yén anjeun teu bisa maké fungsi \"surélékan pamaké ieu\" mun anjeun teu ngadaptarkeun alamat surélék nu sah kana [[Special:Preferences|préferénsi pamaké]] anjeun.
 
 Alamat IP anjeun \$3 jeung ID na #\$5.
 Lampirkeun informasi ieu dina unggal ''query'' anjeun.",
@@ -779,7 +780,7 @@ Pikeun rujukan, éntri log panungtung dipidangkeun di handap:',
 'userinvalidcssjstitle' => "'''Awas''': kulit \"\$1\" mah teu aya. Sing émut yén kaca .css jeung .js mah migunakeun aksara leutik dina judulna, contona baé {{ns:user}}:Foo/vector.css lawan {{ns:user}}:Foo/Vector.css.",
 'updated' => '(Geus diropéa)',
 'note' => "'''Catetan:'''",
-'previewnote' => "'''Inget yén ieu ukur pramidang, can disimpen!'''
+'previewnote' => "'''Inget yén ieu ukur pratayang, can disimpen.'''
 Éditan anjeun can disimpen!",
 'previewconflict' => 'Sawangan ieu mangrupa eunteung pikeun téks na rohangan ngédit sakumaha bakal katémbong mun ku anjeun disimpen.',
 'session_fail_preview' => "'''Punten! Kami teu bisa ngolah éditan anjeun alatan leungitna data rintakan. Mangga cobian deui. Mun tetep teu bisa, cobi kaluar log lajeng lebet deui.'''",
@@ -1363,7 +1364,7 @@ Mun geus anggeus teu bisa dibolaykeun.',
 'nchanges' => '$1 {{PLURAL:$1|parobahan|parobahan}}',
 'recentchanges' => 'Anyar robah',
 'recentchanges-legend' => 'Pilihan parobahan anyar',
-'recentchangestext' => 'Lacak parobahan ka wiki panganyarna na kaca ieu.',
+'recentchanges-summary' => 'Lacak parobahan ka wiki panganyarna na kaca ieu.',
 'recentchanges-feed-description' => 'Manggihan parobahan panganyarna dina wiki di asupan ieu.',
 'recentchanges-label-newpage' => 'Ieu parobahan bakal ngahasillkeun kaca anyar',
 'recentchanges-label-minor' => 'Ieu éditan minor',
index 19d1cd3..5a30a6a 100644 (file)
@@ -1267,7 +1267,7 @@ Se till att sidhistorikens kontinuitet behålls när du sammanfogar historik.',
 
 # Diffs
 'history-title' => 'Versionshistorik för "$1"',
-'difference-title' => 'Skillnader mellan revideringar av "$1"',
+'difference-title' => 'Skillnad mellan versioner av "$1"',
 'difference-title-multipage' => 'Skillnader mellan sidorna "$1" och "$2"',
 'difference-multipage' => '(Skillnad mellan sidor)',
 'lineno' => 'Rad $1:',
@@ -1627,7 +1627,7 @@ Om du väljer att ange ditt riktiga namn, kommer det att användas för att till
 'nchanges' => '$1 {{PLURAL:$1|ändring|ändringar}}',
 'recentchanges' => 'Senaste ändringarna',
 'recentchanges-legend' => 'Alternativ för senaste ändringarna',
-'recentchangestext' => 'Följ de senaste ändringarna i wikin på denna sida.',
+'recentchanges-summary' => 'Följ de senaste ändringarna i wikin på denna sida.',
 'recentchanges-feed-description' => 'Följ de senaste ändringarna i wikin genom den här matningen.',
 'recentchanges-label-newpage' => 'Denna redigering skapade en ny sida',
 'recentchanges-label-minor' => 'Detta är en mindre ändring',
index 6b54e12..8ffb1f1 100644 (file)
@@ -1369,7 +1369,7 @@ Taarifa hii itakuwa wazi.',
 'nchanges' => '{{PLURAL:$1|badiliko|mabadiliko}} $1',
 'recentchanges' => 'Mabadiliko ya karibuni',
 'recentchanges-legend' => "Machaguo ya 'mabadaliko ya karibuni'",
-'recentchangestext' => 'Orodha ya mabadilisho yaliyofanywa katika {{SITENAME}} siku zilizopita.',
+'recentchanges-summary' => 'Orodha ya mabadilisho yaliyofanywa katika {{SITENAME}} siku zilizopita.',
 'recentchanges-feed-description' => 'Tumia tawanyiko hili kufuatilia mabadiliko yote ya hivi karibuni katika Wiki.',
 'recentchanges-label-newpage' => 'Ukurasa mpya ulianzishwa hapo',
 'recentchanges-label-minor' => 'Hili ni badiliko dogo',
@@ -1554,10 +1554,10 @@ Tatizo likiendelea, uwasiliane na [[Special:ListUsers/sysop|mkabidhi]].',
 # ZipDirectoryReader
 'zip-file-open-error' => 'Ilitokea hitilafu wakati wa kufungua faili kwa ajili ya ukaguzi wa ZIP.',
 'zip-wrong-format' => 'Faili lililotajwa si faili la ZIP.',
-'zip-bad' => 'Faili ZIP hili limevurugika ama halisomeka.
-Haliwezi kugakuliwa ili kukinga usalama.',
-'zip-unsupported' => 'Faili ZIP hili linatumia bidhaa pepe ya ZIP zisizoeleweka na MediaWiki.
-Haliwezi kugakuliwa ili kukinga usalama.',
+'zip-bad' => 'Faili hili la ZIP limevurugika ama haliwezikusomeka.
+Haliwezi kukaguliwa vilivyo kwa sababu za kiusalama.',
+'zip-unsupported' => 'Faili hili la ZIP ambalo linatumia vipengele ambavyo haviungwi mkono na MediaWiki.
+Haliwezi kukaguliwa vilivyo kwa sababu za kiusalama.',
 
 # Special:UploadStash
 'uploadstash-refresh' => 'Zimua orodha ya mafaili',
@@ -1719,14 +1719,14 @@ Kumbuka kuhakikisha kwamba hakuna viungo vingine vinavyoelekea kigezo fulani kab
 'statistics-edits' => 'Kurasa zilizohaririwa tangu {{SITENAME}} ilivyoanzishwa',
 'statistics-edits-average' => 'Wastani wa uhariri kwa kurasa',
 'statistics-views-total' => 'Jumla ya mitazamaji',
-'statistics-views-total-desc' => 'Ziara za kurasa zisizopatikana na kurasa maalum hazihesabiwi',
+'statistics-views-total-desc' => 'Tazamo za kurasa zisizokuwepo na kurasa maalumu ambazo hazijaorodheshwa.',
 'statistics-views-peredit' => 'Mitazamaji kwa haririo',
 'statistics-users' => '[[Special:ListUsers|Watumiaji]] waliojisajiri',
 'statistics-users-active' => 'Watumiaji wanaofanya kazi',
 'statistics-users-active-desc' => 'Watumiaji waliofanya kazi katika siku {{PLURAL:$1|iliyopita|$1 zilizopita}}',
 'statistics-mostpopular' => 'Kurasa zinazotazamwa sana',
 
-'disambiguations' => 'Kurasa za kuainisha maneno',
+'disambiguations' => 'Kurasa zinazoungana na kurasa za uanishaji',
 'disambiguationspage' => 'Template:Maana',
 'disambiguations-text' => "Kurasa zinazofuata zina viungo vinavyoelekea '''kurasa ya kutofautishana maana'''.
 Ni afadhali kiungo kiende makala inayostahili moja kwa moja.<br />
@@ -1736,8 +1736,8 @@ Kurasa za kutofautishana maana ni zile zinazotumia kigezo kinachoorodheshwa kati
 'doubleredirectstext' => 'Ukurasa huu unaorodhesha kurasa zinazoelekeza kurasa zingine za kuelekeza.
 Katika kila mstari kuna viungo vinavyokwenda katika kurasa za kuelekeza zote mbili, pamoja na ukurasa wa mwishilio mwa elekezo la pili. Ukurasa huu wa mwishilio huwa ni ukurasa unaostahili kuelekezwa kutoka kwa ukurasa wa kuelekeza wa kwanza. Vitu <del>vilivyokatwa kwa mstari</del> vimeshatatuliwa.',
 'double-redirect-fixed-move' => '[[$1]] umehamishwa.
-Sasa unaelekeza [[$2]].',
-'double-redirect-fixed-maintenance' => 'Elekezo maradufu inarekebishwa toka [[$1]] kwenda [[$2]].',
+Sasa unaelekeza kwa [[$2]].',
+'double-redirect-fixed-maintenance' => 'Elekezo maradufu inarekebishwa kutoka [[$1]] kwenda [[$2]].',
 'double-redirect-fixer' => 'Boti ya kurekebisha maelekezo',
 
 'brokenredirects' => 'Maelekezo yenye hitilafu',
index 3c7fb48..19c3b0a 100644 (file)
@@ -1166,7 +1166,7 @@ $1',
 'nchanges' => '$1 {{PLURAL:$1|pomjyńańe|pomjyńańa|pomjyńań}}',
 'recentchanges' => 'Ńydowno půmjyńane',
 'recentchanges-legend' => 'Uopcyje ńydowno půmjyńanych',
-'recentchangestext' => 'Ta zajta předstawjo historyjo uostatńich půmjyńań na tyj wiki',
+'recentchanges-summary' => 'Ta zajta předstawjo historyjo uostatńich půmjyńań na tyj wiki',
 'recentchanges-feed-description' => 'Dowej pozůr na půmjyńane na uostatku na tyj wiki.',
 'recentchanges-label-newpage' => 'Tym sprowjyńym stworzůno nowa zajta',
 'recentchanges-label-minor' => 'To je ńywjelge sprowjyńy',
index 75341e8..03cec6d 100644 (file)
@@ -1354,7 +1354,7 @@ $1",
 'nchanges' => '{{PLURAL:$1|ஓர் மாற்றம்|$1 மாற்றங்கள்}}',
 'recentchanges' => 'அண்மைய மாற்றங்கள்',
 'recentchanges-legend' => 'அண்மைய மாற்றங்களின் தேர்வுகள்',
-'recentchangestext' => 'இந்த விக்கிக்கு மிக அண்மையில் செய்யப்பட்ட மாற்றங்களை, இந்தப் பக்கத்தில் காணலாம்.',
+'recentchanges-summary' => 'இந்த விக்கிக்கு மிக அண்மையில் செய்யப்பட்ட மாற்றங்களை, இந்தப் பக்கத்தில் காணலாம்.',
 'recentchanges-feed-description' => 'இவ்வுள்ளீட்டில் இந்த விக்கியில் செய்யப்பட்ட் மிக அண்மைய மாற்றங்கள் கவனிக்கப்படுகின்றன.',
 'recentchanges-label-newpage' => 'இந்தத் தொகுப்பு ஒரு புதிய பக்கத்தை உருவாக்கியுள்ளது',
 'recentchanges-label-minor' => 'இது ஒரு சிறு தொகுப்பு',
index 3f8b82b..f0a254e 100644 (file)
@@ -662,7 +662,7 @@ $messages = array(
 'nchanges' => '$1 {{PLURAL:$1|ಬದಲಾವಣೆ|ಬದಲಾವಣೆಲು}}',
 'recentchanges' => 'ಇಂಚಿಪದ ಬದಲಾವಣೆಲು',
 'recentchanges-legend' => 'ಇಂಚಿಪದ ಬದಲಾವಣೆಲು ಆಯ್ಕೆಲು',
-'recentchangestext' => 'ಈ ವಿಕಿಟ್ ಇಂಚಿಪ್ಪ ಆತಿನ ಬದಲಾವಣೆನ್ ಟ್ರಾಕ್ ಮಲ್ಪುಲೆ',
+'recentchanges-summary' => 'ಈ ವಿಕಿಟ್ ಇಂಚಿಪ್ಪ ಆತಿನ ಬದಲಾವಣೆನ್ ಟ್ರಾಕ್ ಮಲ್ಪುಲೆ',
 'recentchanges-feed-description' => 'ಈ ಫೀಡ್’ಡ್ ವಿಕಿಕ್ ಇಂಚಿಪ್ಪ ಆತಿನಂಚಿನ ಬದಲಾವಣೆಲೆನ್ ಟ್ರ್ಯಾಕ್ ಮಲ್ಪುಲೆ.',
 'recentchanges-label-newpage' => 'ಇರ್ನ ಈ ಬದಲಾವಣೆ ಪೊಸ ಪುಟೊನು ಸುರು ಮಲ್ಪುಂಡು',
 'recentchanges-label-minor' => 'ಉಂದು ಎಲ್ಯ ಬದಲಾವಣೆ',
index 9c73a79..2cb8499 100644 (file)
@@ -1059,7 +1059,7 @@ $1",
 'mergelogpagetext' => 'ఒక పేజీ చరితాన్ని మరో పేజీ చరితం లోకి ఇటీవల చేసిన విలీనాల జాబితా ఇది.',
 
 # Diffs
-'history-title' => '"$1" à°\95à±\82à°°à±\8dà°ªà±\81à°² à°\9aà°°à°¿à°¤à°\82',
+'history-title' => '"$1" à°¯à±\8aà°\95à±\8dà°\95 à°\95à±\82à°°à±\8dà°ªà±\81à°² à°\9aà°°à°¿à°¤à±\8dà°°',
 'difference-multipage' => '(పేజీల మధ్య తేడా)',
 'lineno' => 'పంక్తి $1:',
 'compareselectedversions' => 'ఎంచుకున్న సంచికలను పోల్చిచూడు',
@@ -1154,8 +1154,9 @@ $1",
 'prefs-beta' => 'బీటా సౌలభ్యాలు',
 'prefs-datetime' => 'తేదీ, సమయం',
 'prefs-labs' => 'ప్రయోగాత్మక సౌలభ్యాలు',
+'prefs-user-pages' => 'వాడుకరి పేజీలు',
 'prefs-personal' => 'వాడుకరి వివరాలు',
-'prefs-rc' => 'ఇటీవలి మార్పులు, మొలకలు',
+'prefs-rc' => 'ఇటీవలి మార్పులు',
 'prefs-watchlist' => 'వీక్షణ జాబితా',
 'prefs-watchlist-days' => 'వీక్షణ జాబితాలో చూపించవలసిన రోజులు:',
 'prefs-watchlist-days-max' => '$1 {{PLURAL:$1|రోజు|రోజులు}} గరిష్ఠం',
@@ -1411,7 +1412,7 @@ $1",
 'nchanges' => '{{PLURAL:$1|ఒక మార్పు|$1 మార్పులు}}',
 'recentchanges' => 'ఇటీవలి మార్పులు',
 'recentchanges-legend' => 'ఇటీవలి మార్పుల ఎంపికలు',
-'recentchangestext' => 'వికీలో ఇటీవల జరిగిన మార్పులను ఈ పుటలో గమనించవచ్చు.',
+'recentchanges-summary' => 'వికీలో ఇటీవల జరిగిన మార్పులను ఈ పుటలో గమనించవచ్చు.',
 'recentchanges-feed-description' => 'ఈ ఫీడు ద్వారా వికీలో జరుగుతున్న మార్పుల గురించి ఎప్పటికప్పుడు సమాచారాన్ని పొందండి.',
 'recentchanges-label-newpage' => 'ఈ మార్పు కొత్త పేజీని సృష్టించింది',
 'recentchanges-label-minor' => 'ఇది ఒక చిన్న మార్పు',
@@ -1641,12 +1642,11 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'upload_source_file' => ' (మీ కంప్యూటర్లో ఒక ఫైలు)',
 
 # Special:ListFiles
-'listfiles-summary' => 'ఈ ప్రత్యేక పేజీ ఇప్పటి వరకూ అప్లోడయిన ఫైళ్లను చూపిస్తుంది.
-ఏ క్రమాన్నీ పేర్కొనకపోతే ఇటీవలే అప్లోడయిన ఫైళ్లను ముందుగా చూపిస్తుంది.
-నిలువు వరుసలకున్న శీర్షికలపై నొక్కితే క్రమపరిచే విధానం మారుతుంది.',
+'listfiles-summary' => 'ఈ ప్రత్యేక పేజీ ఇప్పటి వరకూ ఎక్కించిన దస్త్రాలన్నింటినీ చూపిస్తుంది.
+వాడుకరి పేరు మీద వడపోసినప్పుడు, ఆ వాడుకరి ఎక్కించిన కూర్పు ఆ దస్త్రం యొక్క సరికొత్త కూర్పు అయితేనే చూపిస్తుంది.',
 'listfiles_search_for' => 'మీడియా పేరుకై వెతుకు:',
-'imgfile' => 'à°«à±\88à°²à±\81',
-'listfiles' => 'à°«à±\88à°³à±\8dà°³ జాబితా',
+'imgfile' => 'దసà±\8dà°¤à±\8dà°°à°\82',
+'listfiles' => 'దసà±\8dà°¤à±\8dరాల జాబితా',
 'listfiles_thumb' => 'నఖచిత్రం',
 'listfiles_date' => 'తేదీ',
 'listfiles_name' => 'పేరు',
@@ -1759,7 +1759,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'statistics-articles' => 'విషయపు పేజీలు',
 'statistics-pages' => 'పేజీలు',
 'statistics-pages-desc' => 'ఈ వికీలోని అన్ని పేజీలు (చర్చా పేజీలు, దారిమార్పులు, మొదలైనవన్నీ కలుపుకొని).',
-'statistics-files' => 'à°\8eà°\97à±\81మతà±\88à°¨ à°«à±\88à°³à±\8dà°³ు',
+'statistics-files' => 'à°\8eà°\95à±\8dà°\95à°¿à°\82à°\9aà°¿à°¨ à°¦à°¸à±\8dà°¤à±\8dరాలు',
 'statistics-edits' => '{{SITENAME}}ని మొదలుపెట్టినప్పటినుండి జరిగిన మార్పులు',
 'statistics-edits-average' => 'పేజీకి సగటు మార్పులు',
 'statistics-views-total' => 'మొత్తం వీక్షణలు',
@@ -3472,6 +3472,10 @@ $5
 'revdelete-uname-hid' => 'వాడుకరి పేరుని దాచారు',
 'revdelete-restricted' => 'నిర్వాహకులకు ఆంక్షలు విధించాను',
 'revdelete-unrestricted' => 'నిర్వాహకులకున్న ఆంక్షలను ఎత్తేశాను',
+'logentry-move-move' => '$1 $3 పేజీని $4కి తరలించారు',
+'logentry-move-move-noredirect' => '$1 $3 పేజీని $4కి దారిమార్పు లేకుండా తరలించారు',
+'logentry-move-move_redir' => '$1 $3 పేజీని $4కి దారిమార్పు ద్వారా తరలించారు',
+'logentry-move-move_redir-noredirect' => '$1 $3 పేజీని $4కి దారిమార్పు లేకుండా తరలించారు',
 'logentry-newusers-newusers' => '$1 వాడుకరి ఖాతాను సృష్టించారు',
 'logentry-newusers-create' => '$1 ఒక వాడుకరి ఖాతాను సృష్టించారు',
 'logentry-newusers-create2' => '$1  వాడుకరి ఖాతా $3ను సృష్టించారు',
index de424eb..bb12ce2 100644 (file)
@@ -1025,7 +1025,7 @@ $1',
 'nchanges' => '$1 {{PLURAL:$1|тағйир|тағйирот}}',
 'recentchanges' => 'Тағйироти охирин',
 'recentchanges-legend' => 'Ихтиёроти тағйироти охирин',
-'recentchangestext' => 'Назорати тағйиротҳои навтарин дар Википедиа дар ҳамин саҳифа аст.',
+'recentchanges-summary' => 'Назорати тағйиротҳои навтарин дар Википедиа дар ҳамин саҳифа аст.',
 'recentchanges-feed-description' => 'Радёбии охирин тағйироти ин вики дар ин хурд.',
 'rcnote' => "Дар поён  {{PLURAL:$1|'''1''' тағйире аст|'''$1''' тағйирот мебошанд}}, ки дар давоми {{PLURAL:$2|рӯҳ|'''$2''' рӯзҳои}} охир, сар карда аз $5, $4.",
 'rcnotefrom' => 'Дар зер тағйиротҳои охирин аз <b>$2</b> (то <b>$1</b> нишон дода шудааст).',
index 6a83f8b..325d0ea 100644 (file)
@@ -908,7 +908,7 @@ On bojad kamtar az $1 {{PLURAL:$1|alomat|alomatho}} boşad.',
 'nchanges' => '$1 {{PLURAL:$1|taƣjir|taƣjirot}}',
 'recentchanges' => 'Taƣjiroti oxirin',
 'recentchanges-legend' => 'Ixtijoroti taƣjiroti oxirin',
-'recentchangestext' => 'Nazorati taƣjirothoi navtarin dar Vikipedia dar hamin sahifa ast.',
+'recentchanges-summary' => 'Nazorati taƣjirothoi navtarin dar Vikipedia dar hamin sahifa ast.',
 'recentchanges-feed-description' => 'Radjobiji oxirin taƣjiroti in viki dar in xurd.',
 'rcnote' => "Dar pojon  {{PLURAL:$1|'''1''' taƣjire ast|'''$1''' taƣjirot meboşand}}, ki dar davomi {{PLURAL:$2|rūh|'''$2''' rūzhoi}} oxir, sar karda az $5, $4.",
 'rcnotefrom' => 'Dar zer taƣjirothoi oxirin az <b>$2</b> (to <b>$1</b> nişon doda şudaast).',
index 33f4812..0a65a7e 100644 (file)
@@ -224,9 +224,11 @@ $messages = array(
 'tog-watchlisthideliu' => 'ซ่อนการแก้ไขโดยผู้ใช้ล็อกอินจากรายการเฝ้าดู',
 'tog-watchlisthideanons' => 'ซ่อนการแก้ไขโดยผู้ใช้นิรนามจากรายการเฝ้าดู',
 'tog-watchlisthidepatrolled' => 'ซ่อนการแก้ไขที่ตรวจแล้วจากรายการเฝ้าดู',
+'tog-nolangconversion' => 'ปิดใช้งานการแปลงอักษรต่างรูป',
 'tog-ccmeonemails' => 'ส่งสำเนาอีเมลกลับมาทุกครั้งที่ส่งหาคนอื่น',
 'tog-diffonly' => 'ไม่แสดงเนื้อหาใต้ส่วนต่างการแก้ไข',
 'tog-showhiddencats' => 'แสดงหมวดหมู่ที่ซ่อนอยู่',
+'tog-noconvertlink' => 'ปิดใช้งานการแปลงชื่อเรื่องของลิงก์',
 'tog-norollbackdiff' => 'ข้ามแสดงความเปลี่ยนแปลงหลังจากดำเนินการย้อนกลับ',
 
 'underline-always' => 'เสมอ',
@@ -720,7 +722,9 @@ $1',
 'headline_tip' => 'หัวข้อ',
 'nowiki_sample' => 'ใส่ข้อความที่ไม่จัดรูปแบบ',
 'nowiki_tip' => 'ข้ามการจัดรูปแบบวิกิ',
+'image_sample' => 'ตัวอย่าง.jpg',
 'image_tip' => 'ใส่ภาพ',
+'media_sample' => 'ตัวอย่าง.ogg',
 'media_tip' => 'เชื่อมโยงไฟล์สื่อ',
 'sig_tip' => 'ลายเซ็นพร้อมลงเวลา',
 'hr_tip' => 'เส้นนอน',
@@ -799,11 +803,12 @@ $1 เป็นผู้ดำเนินการบล็อกในคร
 'userpage-userdoesnotexist-view' => 'ไม่มีบัญชีผู้ใช้ลงทะเบียนในชื่อ "$1"',
 'blocked-notice-logextract' => 'ปัจจุบันเลขที่อยู่ไอพีนี้ถูกบล็อก
 ปูมการบล็อกล่าสุดแสดงด้านล่างนี้เพื่อการอ้างอิง:',
-'clearyourcache' => "'''คำแนะนำ:''' หลังจากบันทึกผลแล้ว คุณอาจจะต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูผลการเปลี่ยนแปลง <br />
-'''มอซิลลา / ไฟร์ฟอกซ์ / ซาฟารี:''' กดปุ่ม ''Shift'' ค้างไว้ขณะกดปุ่ม ''รีโหลด'' หรือกด  ''Ctrl-F5'' หรือกด ''Ctrl-R'' (''Command-R'' สำหรับเครื่องแมคอินทอช); <br />
-'''คองเคอเรอร์:''' กดปุ่ม ''รีโหลด'' หรือกด ''F5;'' <br />
-'''โอเปร่า:''' อาจต้องล้างแคชทั้งหมดผ่านเมนู ''Tools → Preferences;'' <br />
-'''อินเทอร์เน็ตเอกซ์พลอเรอร์:''' กด  ''Ctrl'' ค้างไว้ขณะที่กดปุ่ม ''รีเฟรช'' หรือกด ''Ctrl-F5;''",
+'clearyourcache' => "'''หมายเหตุ:''' หลังจากบันทึกแล้ว คุณอาจจะต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง
+* '''ไฟร์ฟอกซ์ / ซาฟารี:''' กดปุ่ม ''Shift'' ค้างไว้ขณะคลิก ''Reload'' หรือกดปุ่ม ''Ctrl-F5'' หรือ ''Ctrl-R'' (''⌘-R'' บนแมคอินทอช)
+* '''กูเกิล โครม:''' กดปุ่ม ''Ctrl-Shift-R'' (''⌘-Shift-R'' บนแมคอินทอช)
+* '''อินเทอร์เน็ตเอกซ์พลอเรอร์:''' กดปุ่ม ''Ctrl'' ค้างไว้ขณะคลิก ''Refresh'' หรือกดปุ่ม ''Ctrl-F5''
+* '''คองเคอเรอร์:''' คลิก ''Reload'' หรือกดปุ่ม ''F5''
+* '''โอเปร่า:''' ล้างแคชในเมนู ''Tools → Preferences''",
 'usercssyoucanpreview' => "'''คำแนะนำ:''' กดปุ่ม \"{{int:showpreview}}\" เพื่อทดสอบ CSS สไตล์ชีทก่อนทำการบันทึก",
 'userjsyoucanpreview' => "'''คำแนะนำ:''' กดปุ่ม 'แสดงตัวอย่าง' เพื่อทดสอบสไตล์ชีตหรือจาวาสคริปต์ก่อนทำการบันทึก",
 'usercsspreview' => "'''อย่าลืมว่าสไตล์ชีตที่คุณสร้างยังไม่ได้ถูกบันทึก'''
@@ -816,7 +821,8 @@ $1 เป็นผู้ดำเนินการบล็อกในคร
 'userinvalidcssjstitle' => "'''คำเตือน:''' ไม่มีแบบหน้าตา \"\$1\" อย่าลืมว่าหน้า .css และ .js ที่ปรับแต่งเอง ใช้เป็นอักษรตัวพิมพ์เล็กทั้งหมด เช่น ใช้ {{ns:user}}:Foo/vector.css แทนที่จะเป็น {{ns:user}}:Foo/Vector.css",
 'updated' => '(ปรับปรุงแล้ว)',
 'note' => "'''คำแนะนำ:'''",
-'previewnote' => "'''พึงระลึกว่านี่เป็นเพียงตัวอย่างเท่านั้น การเปลี่ยนแปลงของคุณยังไม่ได้ถูกบันทึก!'''",
+'previewnote' => "'''พึงระลึกว่านี่เป็นเพียงตัวอย่างเท่านั้น'''
+การเปลี่ยนแปลงของคุณยังไม่ได้ถูกบันทึก!",
 'previewconflict' => 'การแสดงผลส่วนนี้เป็นตัวอย่างของการแก้ไขด้านบน  ถ้ากดบันทึกการแสดงผลจะแสดงในลักษณะนี้ทันที',
 'session_fail_preview' => "'''ขออภัย ไม่สามารถดำเนินการแก้ไขต่อได้ เนื่องจากข้อมูลเชื่อมต่อสูญหาย
 ให้ทดลองแก้ไขอีกครั้งหนึ่ง ถ้ายังไม่สามารถทำได้ ให้ลองล็อกเอาต์และล็อกอินกลับมาอีกครั้ง'''",
@@ -958,29 +964,29 @@ $1 เป็นผู้ดำเนินการบล็อกในคร
 'rev-deleted-user-contribs' => '[ชื่อผู้ใช้หรือหมายเลขไอพีถูกลบแล้ว - การแก้ไขถูกซ่อนจากรายการแก้ไข]',
 'rev-deleted-text-permission' => "รุ่นการปรับปรุงนี้ของหน้านี้'''ถูกลบแล้ว'''
 รายละเอียดอาจยังคงมีอยู่ใน[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} บันทึกการลบ]",
-'rev-deleted-text-unhide' => "รุà¹\88à¸\99à¸\81ารà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\99ีà¹\89à¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89'''à¸\96ูà¸\81ลà¸\9aà¹\81ลà¹\89ว'''
-รายละà¹\80อียà¸\94อาà¸\88ยัà¸\87à¸\84à¸\87มีอยูà¹\88à¹\83à¸\99[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¸\9aัà¸\99à¸\97ึà¸\81การลบ]
-สำหรัà¸\9aà¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9a à¸\84ุà¸\93ยัà¸\87สามารà¸\96[$1 à¹\80รียà¸\81à¸\94ูรุà¹\88à¸\99à¸\81ารà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\99ีà¹\89]หาà¸\81à¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81าร",
-'rev-suppressed-text-unhide' => "à¸\89à¸\9aัà¸\9aà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89à¹\84à¸\94à¹\89à¸\96ูà¸\81'''ยัà¸\9aยัà¹\89à¸\87à¹\81ลà¹\89ว'''
-à¸\8bึà¹\88à¸\87อาà¸\88มีรายละà¹\80อียà¸\94à¹\83à¸\99 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¸\9bระวัà¸\95ิการยับยั้ง]
¹\83à¸\99à¸\90าà¸\99ะà¸\97ีà¹\88à¸\84ุà¸\93à¹\80à¸\9bà¹\87à¸\99à¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9a à¸\84ุà¸\93ยัà¸\87สามารà¸\96[$1 à¸\94ูà¸\89à¸\9aัà¸\9aà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\99ีà¹\89]à¹\84à¸\94à¹\89à¸\96à¹\89าà¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81าร",
-'rev-deleted-text-view' => "รุà¹\88à¸\99à¸\81ารà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\99ีà¹\89à¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89'''à¸\96ูà¸\81ลà¸\9aà¹\81ลà¹\89ว'''
-สำหรัà¸\9aà¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9a à¸\84ุà¸\93ยัà¸\87สามารà¸\96à¹\80รียà¸\81à¸\94ูà¹\84à¸\94à¹\89 à¸£à¸²à¸¢à¸¥à¸°à¹\80อียà¸\94อาà¸\88ยัà¸\87à¸\84à¸\87มีอยูà¹\88à¹\83à¸\99[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¸\9aัà¸\99à¸\97ึà¸\81การลบ]",
-'rev-suppressed-text-view' => "à¸\89à¸\9aัà¸\9aà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89à¹\84à¸\94à¹\89à¸\96ูà¸\81'''ยัà¸\9aยัà¹\89à¸\87à¹\81ลà¹\89ว'''
¹\83à¸\99à¸\90าà¸\99ะà¸\97ีà¹\88à¸\84ุà¸\93à¹\80à¸\9bà¹\87à¸\99à¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9aà¸\84ุà¸\93สามารà¸\96à¸\94ูà¸\89à¸\9aัà¸\9aà¸\9bรัà¸\9aà¸\9bรุà¸\87à¹\84à¸\94à¹\89 à¸\8bึà¹\88à¸\87อาà¸\88à¸\88ะมีรายละà¹\80อียà¸\94à¹\83à¸\99[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¸\9bระวัà¸\95ิการยับยั้ง]",
+'rev-deleted-text-unhide' => "รุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89à¹\84à¸\94à¹\89à¸\96ูà¸\81'''ลà¸\9aออà¸\81'''
+รายละà¹\80อียà¸\94สามารà¸\96à¸\9eà¸\9aà¹\84à¸\94à¹\89à¹\83à¸\99[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¸\9bูมการลบ]
+à¸\84ุà¸\93ยัà¸\87สามารà¸\96[$1 à¸\94ูรุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\99ีà¹\89]à¹\84à¸\94à¹\89à¸\96à¹\89าà¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81ารà¸\94ำà¹\80à¸\99ิà¸\99à¸\95à¹\88อ",
+'rev-suppressed-text-unhide' => "รุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89à¹\84à¸\94à¹\89à¸\96ูà¸\81'''ยัà¸\9aยัà¹\89à¸\87à¹\84วà¹\89'''
+รายละà¹\80อียà¸\94สามารà¸\96à¸\9eà¸\9aà¹\84à¸\94à¹\89à¹\83à¸\99[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¸\9bูมการยับยั้ง]
¸\84ุà¸\93ยัà¸\87สามารà¸\96[$1 à¸\94ูรุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\99ีà¹\89]à¹\84à¸\94à¹\89à¸\96à¹\89าà¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81ารà¸\94ำà¹\80à¸\99ิà¸\99à¸\95à¹\88อ",
+'rev-deleted-text-view' => "รุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89à¹\84à¸\94à¹\89à¸\96ูà¸\81'''ลà¸\9aออà¸\81'''
+à¸\84ุà¸\93สามารà¸\96à¸\94ูรุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\99ีà¹\89à¹\84à¸\94à¹\89 à¸\8bึà¹\88à¸\87รายละà¹\80อียà¸\94สามารà¸\96à¸\9eà¸\9aà¹\84à¸\94à¹\89à¹\83à¸\99[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¸\9bูมการลบ]",
+'rev-suppressed-text-view' => "รุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89à¹\84à¸\94à¹\89à¸\96ูà¸\81'''ยัà¸\9aยัà¹\89à¸\87à¹\84วà¹\89'''
¸\84ุà¸\93สามารà¸\96à¸\94ูรุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\99ีà¹\89à¹\84à¸\94à¹\89 à¸\8bึà¹\88à¸\87รายละà¹\80อียà¸\94สามารà¸\96à¸\9eà¸\9aà¹\84à¸\94à¹\89à¹\83à¸\99[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¸\9bูมการยับยั้ง]",
 'rev-deleted-no-diff' => "คุณไม่สามารถเรียกดูความเปลี่ยนแปลงนี้ เนื่องจากรุ่นการปรับปรุงที่นำมาเปรียบเทียบมีบางรุ่น'''ถูกลบออก'''
 รายละเอียดอาจยังคงมีอยู่ใน[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} บันทึกการลบ]",
 'rev-suppressed-no-diff' => "คุณไม่สามารถดูความแตกต่างระหว่างรุ่นที่เลือกได้ เนื่องจากมีความแตกต่างระหว่างรุ่นที่'''ถูกลบ'''",
-'rev-deleted-unhide-diff' => "รุà¹\88à¸\99à¸\81ารà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\9aาà¸\87รุà¹\88à¸\99à¸\82อà¸\87à¸\84วามà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\99ีà¹\89'''à¸\96ูà¸\81ลà¸\9aà¹\81ลà¹\89ว'''
-รายละà¹\80อียà¸\94อาà¸\88ยัà¸\87à¸\84à¸\87มีอยูà¹\88à¹\83à¸\99[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¸\9aัà¸\99à¸\97ึà¸\81การลบ]
-สำหรัà¸\9aà¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9a à¸\84ุà¸\93ยัà¸\87สามารà¸\96[$1 à¹\80รียà¸\81à¸\94ูรุà¹\88à¸\99à¸\81ารà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\99ีà¹\89]หาà¸\81à¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81าร",
+'rev-deleted-unhide-diff' => "หà¸\99ึà¹\88à¸\87à¹\83à¸\99รุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\97ัà¹\89à¸\87หมà¸\94à¸\82อà¸\87รายà¸\81ารà¸\84วามà¹\81à¸\95à¸\81à¸\95à¹\88าà¸\87à¸\99ีà¹\89à¹\84à¸\94à¹\89à¸\96ูà¸\81'''ลà¸\9aออà¸\81'''
+รายละà¹\80อียà¸\94สามารà¸\96à¸\9eà¸\9aà¹\84à¸\94à¹\89à¹\83à¸\99[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¸\9bูมการลบ]
+à¸\84ุà¸\93ยัà¸\87สามารà¸\96[$1 à¸\94ูà¸\84วามà¹\81à¸\95à¸\81à¸\95à¹\88าà¸\87à¸\99ีà¹\89]à¹\84à¸\94à¹\89à¸\96à¹\89าà¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81ารà¸\94ำà¹\80à¸\99ิà¸\99à¸\95à¹\88อ",
 'rev-suppressed-unhide-diff' => "หนึ่งในรุ่นปรับปรุงทั้งหมดของรายการความแตกต่างนี้ได้ถูก'''ยับยั้งไว้'''
-à¸\8bึà¹\88à¸\87อาà¸\88à¸\88ะมีรายละà¹\80อียà¸\94à¹\83à¸\99[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¸£à¸²à¸¢การยับยั้ง]
¹\83à¸\99à¸\90าà¸\99ะà¸\97ีà¹\88à¹\80à¸\9bà¹\87à¸\99à¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9a à¸\84ุà¸\93สามารà¸\96 [$1 à¸\94ูà¸\84วามà¹\81à¸\95à¸\81à¸\95à¹\88าà¸\87à¹\84à¸\94à¹\89]à¸\96à¹\89าà¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81าร",
+รายละà¹\80อียà¸\94สามารà¸\96à¸\9eà¸\9aà¹\84à¸\94à¹\89à¹\83à¸\99[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¸\9bูมการยับยั้ง]
¸\84ุà¸\93ยัà¸\87สามารà¸\96[$1 à¸\94ูà¸\84วามà¹\81à¸\95à¸\81à¸\95à¹\88าà¸\87à¸\99ีà¹\89]à¹\84à¸\94à¹\89à¸\96à¹\89าà¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81ารà¸\94ำà¹\80à¸\99ิà¸\99à¸\95à¹\88อ",
 'rev-deleted-diff-view' => "หนึ่งในรุ่นปรับปรุงทั้งหมดของรายการความแตกต่างนี้ได้ถูก'''ลบออก'''
¹\83à¸\99à¸\90าà¸\99ะà¸\97ีà¹\88à¹\80à¸\9bà¹\87à¸\99à¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9a à¸\84ุà¸\93สามารà¸\96à¸\94ูà¸\84วามà¹\81à¸\95à¸\81à¸\95à¹\88าà¸\87à¸\99ีà¹\89à¹\84à¸\94à¹\89 à¸\8bึà¹\88à¸\87อาà¸\88à¸\88ะมีรายละà¹\80อียà¸\94à¹\83à¸\99[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¸£à¸²à¸¢การลบ]",
¸\84ุà¸\93สามารà¸\96à¸\94ูà¸\84วามà¹\81à¸\95à¸\81à¸\95à¹\88าà¸\87à¸\99ีà¹\89à¹\84à¸\94à¹\89 à¸\8bึà¹\88à¸\87รายละà¹\80อียà¸\94สามารà¸\96à¸\9eà¸\9aà¹\84à¸\94à¹\89à¹\83à¸\99[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¸\9bูมการลบ]",
 'rev-suppressed-diff-view' => "หนึ่งในรุ่นปรับปรุงทั้งหมดของรายการความแตกต่างนี้ได้ถูก'''ยับยั้งไว้'''
¹\83à¸\99à¸\90าà¸\99ะà¸\97ีà¹\88à¹\80à¸\9bà¹\87à¸\99à¸\9cูà¹\89à¸\94ูà¹\81ลระà¸\9aà¸\9a à¸\84ุà¸\93สามารà¸\96à¸\94ูà¸\84วามà¹\81à¸\95à¸\81à¸\95à¹\88าà¸\87à¸\99ีà¹\89à¹\84à¸\94à¹\89 à¸\8bึà¹\88à¸\87อาà¸\88à¸\88ะมีรายละà¹\80อียà¸\94à¹\83à¸\99[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¸£à¸²à¸¢à¸\81ารยัà¸\87ยั้ง]",
¸\84ุà¸\93สามารà¸\96à¸\94ูà¸\84วามà¹\81à¸\95à¸\81à¸\95à¹\88าà¸\87à¸\99ีà¹\89à¹\84à¸\94à¹\89 à¸\8bึà¹\88à¸\87รายละà¹\80อียà¸\94สามารà¸\96à¸\9eà¸\9aà¹\84à¸\94à¹\89à¹\83à¸\99[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¸\9bูมà¸\81ารยัà¸\9aยั้ง]",
 'rev-delundel' => 'แสดง/ซ่อน',
 'rev-showdeleted' => 'แสดง',
 'revisiondelete' => 'รุ่นการปรับปรุง การลบ/การย้อนการลบ',
@@ -1048,8 +1054,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'บันทึกการระงับ',
-'suppressionlogtext' => 'à¸\94à¹\89าà¸\99ลà¹\88าà¸\87à¸\99ีà¹\89à¸\84ือรายà¸\81ารลà¸\9aà¹\81ละระà¸\87ัà¸\9a à¸£à¸§à¸¡à¹\84à¸\9bà¸\96ึà¸\87à¹\80à¸\99ืà¹\89อหาà¸\97ีà¹\88à¸\96ูà¸\81à¸\8bà¹\88อà¸\99à¹\82à¸\94ยผู้ดูแลระบบ
-ดู [[Special:IPBlockList|รายการหมายเลขไอพีที่ถูกระงับ]] สำหรับรายการระงับและห้ามใช้ที่ยังมีผลอยู่',
+'suppressionlogtext' => 'à¸\94à¹\89าà¸\99ลà¹\88าà¸\87à¸\99ีà¹\89à¸\84ือรายà¸\81ารà¸\81ารลà¸\9aà¹\81ละà¸\81ารà¸\9aลà¹\87อà¸\81à¸\97ีà¹\88à¹\80à¸\81ีà¹\88ยวà¸\82à¹\89อà¸\87à¸\81ัà¸\9aà¹\80à¸\99ืà¹\89อหาà¸\97ีà¹\88à¸\96ูà¸\81à¸\8bà¹\88อà¸\99à¸\88าà¸\81ผู้ดูแลระบบ
+ดู[[Special:BlockList|รายการบล็อกไอพี]]สำหรับการบล็อกและการระงับในปัจจุบัน',
 
 # History merging
 'mergehistory' => 'ประวัติการรวมหน้า',
@@ -1081,7 +1087,7 @@ $1",
 'mergelogpagetext' => 'ด้านล่างนี้แสดงรายการล่าสุดของการรวมประวัติหน้าหนึ่งๆ เข้ากับอีกหน้าหนึ่ง',
 
 # Diffs
-'history-title' => 'à¸\9bระวัà¸\95ิà¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82หà¸\99à¹\89า "$1"',
+'history-title' => 'à¸\9bระวัà¸\95ิรุà¹\88à¸\99à¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\82อà¸\87 "$1"',
 'difference-multipage' => '(ความแตกต่างระหว่างหน้าต่างๆ)',
 'lineno' => 'แถว $1:',
 'compareselectedversions' => 'เปรียบเทียบสองรุ่นที่เลือก',
@@ -1246,7 +1252,7 @@ $1",
 'prefs-registration' => 'วันเวลาที่ลงทะเบียน:',
 'yourrealname' => 'ชื่อจริง:',
 'yourlanguage' => 'ภาษา:',
-'yourvariant' => 'ภาษาอืà¹\88à¸\99',
+'yourvariant' => 'อัà¸\81ษรà¸\95à¹\88าà¸\87รูà¸\9bà¸\82อà¸\87à¹\80à¸\99ืà¹\89อหา:',
 'yournick' => 'ลายเซ็น:',
 'prefs-help-signature' => 'คอมเมนต์ในหน้าพูดคุยควรจะเซ็นด้วย "<nowiki>~~~~</nowiki>" ซึ่งจะถูกแปลงเป็นลายเซ็นและลงวันที่เขียน',
 'badsig' => 'ลายเซ็นที่ใช้ผิดพลาด กรุณาตรวจสอบคำสั่งเอชทีเอ็มแอล',
@@ -1299,7 +1305,7 @@ $1",
 'userrights-no-interwiki' => 'คุณไม่ได้รับสิทธิในการแก้ไขสิทธิของผู้ใช้บนวิกิอื่นๆ',
 'userrights-nodatabase' => 'ไม่มีฐานข้อมูล $1 อยู่ หรือ ฐานข้อมูลอยู่บนเครื่องอื่น',
 'userrights-nologin' => 'คุณต้อง[[Special:UserLogin|ล็อกอิน]]ด้วยบัญชีผู้ใช้ที่เป็นผู้ดูแลสิทธิแต่งตั้ง จึงจะสามารถกำหนดสิทธิต่างๆ ของผู้ใช้ได้',
-'userrights-notallowed' => 'à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\82อà¸\87à¸\84ุà¸\93à¹\84มà¹\88à¹\84à¸\94à¹\89รัà¸\9aสิà¸\97à¸\98ิà¹\83à¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82สิทธิของผู้ใช้',
+'userrights-notallowed' => 'à¸\9aัà¸\8dà¸\8aีà¸\82อà¸\87à¸\84ุà¸\93à¹\84มà¹\88à¹\84à¸\94à¹\89รัà¸\9aอà¸\99ุà¸\8dาà¸\95à¹\83หà¹\89à¹\80à¸\9eิà¹\88มหรือลà¸\94สิทธิของผู้ใช้',
 'userrights-changeable-col' => 'กลุ่มที่คุณสามารถเปลี่ยนได้',
 'userrights-unchangeable-col' => 'กลุ่มที่คุณไม่สามารถเปลี่ยนได้',
 
@@ -1434,7 +1440,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|การแก้ไข|การแก้ไข}}',
 'recentchanges' => 'ปรับปรุงล่าสุด',
 'recentchanges-legend' => 'ตัวเลือกปรับปรุงล่าสุด',
-'recentchangestext' => 'ในหน้านี้เป็นรายการล่าสุดที่มีการปรับปรุง',
+'recentchanges-summary' => 'ในหน้านี้เป็นรายการล่าสุดที่มีการปรับปรุง',
 'recentchanges-feed-description' => 'ฟีดนี้แสดงการเปลี่ยนแปลงล่าสุด',
 'recentchanges-label-newpage' => 'การแก้ไขนี้เป็นการสร้างหน้าใหม่',
 'recentchanges-label-minor' => 'เป็นการแก้ไขเล็กน้อย',
@@ -1668,9 +1674,8 @@ $1',
 'upload_source_file' => ' (ไฟล์จากคอมพิวเตอร์คุณ)',
 
 # Special:ListFiles
-'listfiles-summary' => 'หน้าพิเศษนี้แสดงไฟล์ทั้งหมดที่ถูกอัปโหลด
-โดยปริยาย ไฟล์ที่ถูกอัปโหลดล่าสุด จะแสดงอยู่บนสุดของรายการไฟล์
-คลิกที่คอมลัมน์บนสุดจะเปลี่ยนการจัดแยกประเภท',
+'listfiles-summary' => 'หน้าพิเศษนี้แสดงไฟล์ทั้งหมดที่อัปโหลด
+เมื่อกรองตามผู้ใช้แล้ว จะแสดงเฉพาะไฟล์รุ่นล่าสุดที่ผู้ใช้นั้นอัปโหลด',
 'listfiles_search_for' => 'ค้นหาชื่อภาพ:',
 'imgfile' => 'ไฟล์',
 'listfiles' => 'รายชื่อไฟล์',
@@ -1699,7 +1704,7 @@ $1',
 'filehist-filesize' => 'ขนาดไฟล์',
 'filehist-comment' => 'ความเห็น',
 'filehist-missing' => 'ไฟล์หายไป',
-'imagelinks' => 'หà¸\99à¹\89าà¸\97ีà¹\88มีà¹\84à¸\9fลà¹\8cà¸\99ีà¹\89',
+'imagelinks' => 'à¸\81ารà¹\83à¸\8aà¹\89à¹\84à¸\9fลà¹\8c',
 'linkstoimage' => '{{PLURAL:$1|หน้า|หน้า}}ที่ลิงก์มายังไฟล์นี้:',
 'linkstoimage-more' => 'ไฟล์นี้มีการเชื่อมโยงมากกว่า $1 {{PLURAL:$1|แห่ง|แห่ง}}
 รายชื่อต่อไปนี้แสดงการเชื่อมโยง $1 {{PLURAL:$1|แห่งแรก|แห่งแรก}}ที่มายังไฟล์นี้เท่านั้น
@@ -1794,7 +1799,7 @@ $1',
 'statistics-users-active-desc' => 'ผู้ใช้ที่ได้แก้ไขในช่วง $1 วันที่ผ่านมา',
 'statistics-mostpopular' => 'หน้าที่มีการเข้าชมมากที่สุด',
 
-'disambiguations' => 'หน้าแก้ความกำกวม',
+'disambiguations' => 'หà¸\99à¹\89าà¸\97ีà¹\88à¹\80à¸\8aืà¹\88อมà¹\82ยà¸\87à¸\81ัà¸\9aหà¸\99à¹\89าà¹\81à¸\81à¹\89à¸\84วามà¸\81ำà¸\81วม',
 'disambiguationspage' => 'Template:แก้กำกวม',
 'disambiguations-text' => "หน้าต่อไปนี้เชื่อมโยงไปยัง '''หน้าคำกำกวม''' ซึ่งเนื้อหาในหน้าเหล่านั้นควรถูกเชื่อมโยงไปยังหัวข้อที่เหมาะสมแทนที่<br />
 
@@ -1894,7 +1899,7 @@ $1',
 
 # Special:Log
 'specialloguserlabel' => 'ผู้ดำเนินการ:',
-'speciallogtitlelabel' => 'à¸\8aืà¹\88อà¹\80รืà¹\88อà¸\87:',
+'speciallogtitlelabel' => 'à¹\80à¸\9bà¹\89าหมาย (à¸\8aืà¹\88อà¹\80รืà¹\88อà¸\87หรือà¸\9cูà¹\89à¹\83à¸\8aà¹\89):',
 'log' => 'ปูม',
 'all-logs-page' => 'ปูมสาธารณะทั้งหมด',
 'alllogstext' => 'แสดงปูมทั้งหมดของ{{SITENAME}}
@@ -1938,8 +1943,9 @@ $1',
 'linksearch-pat' => 'รูปแบบการค้นหา:',
 'linksearch-ns' => 'เนมสเปซ:',
 'linksearch-ok' => 'สืบค้น',
-'linksearch-text' => 'สามารถใช้เครื่องหมายแทนอักขระใดๆ (wildcard) ได้ เช่น "*.wikipedia.org"<br />
-โปรโตคอลที่รองรับ: <tt>$1</tt>',
+'linksearch-text' => 'อักขระตัวแทนเช่น "*.wikipedia.org" สามารถใช้ได้
+โดเมนระดับบนสุดจำเป็นต้องมีเป็นอย่างน้อย เช่น "*.org"<br />
+โพรโทคอลที่รองรับ: <tt>$1</tt> (อย่าใส่คำเหล่านี้ในการสืบค้นของคุณ)',
 'linksearch-line' => '$1 ถูกลิงก์จาก $2',
 'linksearch-error' => 'เครื่องหมายแทนอักขระ (wildcard) อยู่หน้าชื่อโฮสต์ได้เท่านั้น',
 
@@ -2140,7 +2146,8 @@ $UNWATCHURL
 
 # Protect
 'protectlogpage' => 'ปูมการล็อก',
-'protectlogtext' => 'รายการด้านล่างแสดงการล็อกหน้าและการปลดล็อก สำหรับหน้าที่โดนล็อกในปัจจุบันดูที่ [[Special:ProtectedPages|รายการหน้าที่ถูกล็อก]]',
+'protectlogtext' => 'ด้านล่างนี้คือรายการการเปลี่ยนแปลงการป้องกันหน้า
+ดู[[Special:ProtectedPages|รายการหน้าที่ถูกป้องกัน]]สำหรับการป้องกันหน้าในปัจจุบัน',
 'protectedarticle' => '"[[$1]]" ถูกล็อก',
 'modifiedarticleprotection' => 'เปลี่ยนระดับการล็อกสำหรับ "[[$1]]"',
 'unprotectedarticle' => 'ลบการปกป้องข้อมูลออกจาก "[[$1]]" แล้ว',
@@ -2341,8 +2348,8 @@ $1',
 'ipb-confirm' => 'ยืนยันการบล็อก',
 'badipaddress' => 'หมายเลขไอพีไม่ถูกต้อง',
 'blockipsuccesssub' => 'บล็อกสำเร็จ',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] ถูกบล็อก
-<br />ดู  [[Special:BlockList|รายการไอพีที่ถูกบล็อก]] เพื่อตรวจสอบการบล็อก',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] ถูกบล็อก<br />
+ดู[[Special:BlockList|รายการบล็อกไอพี]]เพื่อตรวจสอบการบล็อก',
 'ipb-blockingself' => 'คุณกำลังทำการบล็อกตัวคุณเอง คุณแน่ใจแล้วหรือว่าต้องการทำเช่นนั้น',
 'ipb-edit-dropdown' => 'แก้ไขสาเหตุการบล็อก',
 'ipb-unblock-addr' => 'เลิกบล็อก $1',
@@ -2356,7 +2363,7 @@ $1',
 'unblocked-range' => '$1 ถูกปลดบล็อกแล้ว',
 'unblocked-id' => 'เลิกบล็อก $1',
 'blocklist' => 'ผู้ใช้ที่ถูกบล็อก',
-'ipblocklist' => 'หมายà¹\80ลà¸\82à¹\84อà¸\9eีà¹\81ละà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\97ีà¹\88à¸\96ูà¸\81à¸\9aลà¹\87อà¸\81',
+'ipblocklist' => 'ผู้ใช้ที่ถูกบล็อก',
 'ipblocklist-legend' => 'ค้นหาผู้ใช้ที่ถูกระงับการใช้งาน',
 'blocklist-userblocks' => 'ซ่อนบล็อกบัญชี',
 'blocklist-tempblocks' => 'ซ่อนบล็อกชั่วคราว',
@@ -2392,7 +2399,9 @@ $1',
 ปูมการระงับแสดงไว้ด้านล่างนี้เพื่อการอ้างอิง:',
 'blocklogentry' => 'บล็อก "[[$1]]" หมดอายุ $2 $3',
 'reblock-logentry' => 'เปลี่ยนระดับการบล็อกสำหรับ [[$1]] หมดอายุ $2 $3',
-'blocklogtext' => 'ด้านล่างเป็นบันทึกการบล็อกและการเลิกบล็อก  ส่วนการบล็อกอัตโนมัติจะไม่ถูกรวมอยู่ในรายการนี้ ดู [[Special:BlockList|รายการบล็อกไอพี]] สำหรับการบล็อกทั้งหมด',
+'blocklogtext' => 'นี่คือบันทึกการบล็อกและการเลิกบล็อกผู้ใช้
+การบล็อกที่อยู่ไอพีโดยอัตโนมัติจะไม่แสดงในรายการ
+ดู[[Special:BlockList|รายการบล็อกไอพี]]สำหรับการบล็อกและการระงับในปัจจุบัน',
 'unblocklogentry' => 'เลิกบล็อก $1',
 'block-log-flags-anononly' => 'ผู้ใช้นิรนามเท่านั้น',
 'block-log-flags-nocreate' => 'ห้ามสร้างบัญชีผู้ใช้',
@@ -2590,7 +2599,8 @@ $1',
 'import-interwiki-namespace' => 'เนมสเปซปลายทาง:',
 'import-upload-filename' => 'ชื่อไฟล์:',
 'import-comment' => 'ความเห็น:',
-'importtext' => 'กรุณาส่งออกไฟล์จากวิกิอื่นโดยใช้[[Special:Export|เครื่องมือส่งออก]] บันทึก และทำการอัปโหลดมาที่นี่',
+'importtext' => 'กรุณาส่งออกไฟล์จากวิกิต้นทางโดยใช้[[Special:Export|เครื่องมือส่งออก]]
+บันทึกลงคอมพิวเตอร์ของคุณ และอัปโหลดที่นี่',
 'importstart' => 'กำลังนำเข้าหน้า...',
 'import-revision-count' => '$1 {{PLURAL:$1|รุ่นการแก้ไข|รุ่นการแก้ไข}}',
 'importnopages' => 'ไม่มีหน้าให้นำเข้า',
@@ -2648,7 +2658,7 @@ $1',
 'tooltip-ca-viewsource' => 'หน้านี้ถูกล็อก แต่ยังดูโค้ดได้',
 'tooltip-ca-history' => 'รุ่นที่แล้วของหน้านี้',
 'tooltip-ca-protect' => 'ล็อกหน้านี้',
-'tooltip-ca-unprotect' => 'ยà¸\81à¹\80ลิà¸\81การป้องกันหน้านี้',
+'tooltip-ca-unprotect' => 'à¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87การป้องกันหน้านี้',
 'tooltip-ca-delete' => 'ลบหน้านี้',
 'tooltip-ca-undelete' => 'เรียกคืนการแก้ไขหน้านี้กลับมาเป็นรุ่นก่อนที่ถูกลบ',
 'tooltip-ca-move' => 'เปลี่ยนชื่อหน้านี้',
@@ -2700,12 +2710,30 @@ $1',
 'tooltip-summary' => 'ใส่คำอธิบายอย่างย่อสั้น ๆ',
 
 # Stylesheets
-'common.css' => '/** CSS ที่อยู่ในหน้านี้จะมีผลต่อทุกสกินในเว็บไซต์ */',
-'monobook.css' => '/* CSS ที่อยู่ในหน้านี้จะมีผลต่อสกิน Monobook */',
+'common.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ทุกสกิน */',
+'standard.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินคลาสสิก */',
+'nostalgia.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินนอสตัลเจีย */',
+'cologneblue.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินโคโลญจ์บลู */',
+'monobook.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินโมโนบุ๊ก */',
+'myskin.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินมายสกิน */',
+'chick.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินชิก */',
+'simple.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินซิมเปิล */',
+'modern.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินโมเดิร์น */',
+'vector.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ใช้สกินเวกเตอร์ */',
+'print.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่ข้อมูลส่งออกเป็นสิ่งพิมพ์ */',
+'handheld.css' => '/* สไตล์ชีตในหน้านี้จะส่งผลแก่อุปกรณ์เคลื่อนที่ โดยขึ้นอยู่กับสกินที่ตั้งค่าไว้ใน $wgHandheldStyle */',
 
 # Scripts
-'common.js' => '/* จาวาสคริปต์ในหน้านี้จะถูกใช้งานต่อผู้ใช้ทุกคน */',
-'monobook.js' => '/* ถ้าไม่เห็นด้วย ให้ใช้ [[MediaWiki:common.js]] */',
+'common.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ทุกคนในทุกหน้า */',
+'standard.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินคลาสสิก */',
+'nostalgia.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินนอสตัลเจีย */',
+'cologneblue.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินโคโลญจ์บลู */',
+'monobook.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินโมโนบุ๊ก */',
+'myskin.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินมายสกิน */',
+'chick.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินชิก */',
+'simple.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินซิมเปิล */',
+'modern.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินโมเดิร์น */',
+'vector.js' => '/* จาวาสคริปต์ใด ๆ ในหน้านี้จะถูกโหลดให้แก่ผู้ใช้ที่ใช้สกินเวกเตอร์ */',
 
 # Metadata
 'notacceptable' => 'เซิร์ฟเวอร์ของวิกิไม่สามารถให้ข้อมูลในรูปแบบที่ไคลเอนต์สามารถอ่านได้',
@@ -2751,6 +2779,7 @@ $1',
 'skinname-chick' => 'ชิก',
 'skinname-simple' => 'ซิมเปิล',
 'skinname-modern' => 'โมเดิร์น',
+'skinname-vector' => 'เวกเตอร์',
 
 # Patrolling
 'markaspatrolleddiff' => 'ทำเครื่องหมายว่าตรวจสอบแล้ว',
@@ -2829,7 +2858,7 @@ $1',
 'metadata-help' => 'ไฟล์นี้มีข้อมูลเพิ่มเติมแนบไว้ อาจจะมาจาก กล้องดิจิทัล สแกนเนอร์ หรือเครื่องรับส่งจีพีเอส อย่างไรก็ตามข้อมูลที่เก็บไว้อาจถูกดัดแปลงถ้าไฟล์ต้นฉบับถูกแก้ไขจากซอฟต์แวร์อื่น',
 'metadata-expand' => 'แสดงข้อมูลเพิ่มเติม',
 'metadata-collapse' => 'ซ่อนข้อมูลเพิ่มเติม',
-'metadata-fields' => 'à¸\84à¹\88าà¹\80อà¸\81à¸\8bิà¸\9f (Exif) à¸\82อà¸\87ภาà¸\9eà¸\94à¹\89าà¸\99ลà¹\88าà¸\87à¸\88ะà¹\81สà¸\94à¸\87à¸\84วà¸\9aà¸\84ูà¹\88à¹\84à¸\9bà¸\81ัà¸\9aภาà¸\9e
+'metadata-fields' => 'à¹\80à¸\82à¸\95à¸\82à¹\89อมูลà¹\80มà¸\97าà¹\80à¸\94à¸\95าà¸\82อà¸\87ภาà¸\9eà¸\94ัà¸\87à¸\97ีà¹\88à¹\81สà¸\94à¸\87รายà¸\81ารà¹\84วà¹\89à¹\83à¸\99à¸\82à¹\89อà¸\84วามà¸\99ีà¹\89 à¸\88ะà¸\96ูà¸\81รวมà¸\9aà¸\99หà¸\99à¹\89าภาà¸\9eà¹\80มืà¹\88อà¸\95าราà¸\87à¹\80มà¸\97าà¹\80à¸\94à¸\95าà¸\96ูà¸\81ยุà¸\9a à¹\80à¸\82à¸\95à¸\82à¹\89อมูลอืà¹\88à¸\99 à¹\86 à¸\88ะà¸\96ูà¸\81à¸\8bà¹\88อà¸\99à¹\82à¸\94ยà¸\9bริยาย
 * make
 * model
 * datetimeoriginal
@@ -2878,8 +2907,8 @@ $1',
 'exif-colorspace' => 'สเปซสี',
 'exif-componentsconfiguration' => 'ความหมายของแต่ละคอมโพเนนต์',
 'exif-compressedbitsperpixel' => 'โหมดการบีบอัดภาพ',
-'exif-pixelydimension' => 'à¸\84วามà¸\81วà¹\89าà¸\87à¸\97ีà¹\88à¸\99ำà¹\84à¸\9bà¹\83à¸\8aà¹\89à¹\84à¸\94à¹\89',
-'exif-pixelxdimension' => 'à¸\84วามยาวà¸\97ีà¹\88à¸\99ำà¹\84à¸\9bà¹\83à¸\8aà¹\89à¹\84à¸\94à¹\89',
+'exif-pixelydimension' => 'à¸\84วามà¸\81วà¹\89าà¸\87à¸\82อà¸\87ภาà¸\9e',
+'exif-pixelxdimension' => 'à¸\84วามสูà¸\87à¸\82อà¸\87ภาà¸\9e',
 'exif-usercomment' => 'ความเห็นผู้ใช้',
 'exif-relatedsoundfile' => 'ไฟล์เสียงที่เกี่ยวข้อง',
 'exif-datetimeoriginal' => 'วันที่และเวลาที่สร้าง',
@@ -2893,9 +2922,9 @@ $1',
 'exif-exposureprogram' => 'โปรแกรมเอกซ์โพเชอร์',
 'exif-spectralsensitivity' => 'ความไวสเปกตรัม',
 'exif-isospeedratings' => 'อัตราความเร็ว ISO',
-'exif-shutterspeedvalue' => 'à¸\84วามà¹\84วà¸\8aัà¸\95à¹\80à¸\95อรà¹\8c',
-'exif-aperturevalue' => 'รูรับแสง',
-'exif-brightnessvalue' => 'ความสว่าง',
+'exif-shutterspeedvalue' => 'à¸\84วามà¹\80รà¹\87วà¸\8aัà¸\95à¹\80à¸\95อรà¹\8c APEX',
+'exif-aperturevalue' => 'รูรับแสง APEX',
+'exif-brightnessvalue' => 'ความสว่าง APEX',
 'exif-exposurebiasvalue' => 'เอกซ์โพเชอร์ไบแอส',
 'exif-maxaperturevalue' => 'รูรับแสงกว้างสุด',
 'exif-subjectdistance' => 'ระยะวัตถุ',
@@ -2976,9 +3005,9 @@ $1',
 'exif-orientation-3' => 'ถูกหมุน 180°',
 'exif-orientation-4' => 'ถูกสลับแนวตั้ง',
 'exif-orientation-5' => 'ถูกหมุน 90° ทวนเข็มนาฬิกา และถูกสลับแนวตั้ง',
-'exif-orientation-6' => 'à¸\96ูà¸\81หมุà¸\99 90° à¸\95ามเข็มนาฬิกา',
+'exif-orientation-6' => 'à¸\96ูà¸\81หมุà¸\99 90° à¸\97วà¸\99เข็มนาฬิกา',
 'exif-orientation-7' => 'ถูกหมุน 90° ตามเข็มนาฬิกา และถูกสลับแนวตั้ง',
-'exif-orientation-8' => 'à¸\96ูà¸\81หมุà¸\99 90° à¸\97วà¸\99เข็มนาฬิกา',
+'exif-orientation-8' => 'à¸\96ูà¸\81หมุà¸\99 90° à¸\95ามเข็มนาฬิกา',
 
 'exif-planarconfiguration-1' => 'รูปแบบชังกี',
 'exif-planarconfiguration-2' => 'รูปแบบเพลนาร์',
@@ -3046,6 +3075,8 @@ $1',
 'exif-sensingmethod-7' => 'เซนเซอร์สามแนว',
 'exif-sensingmethod-8' => 'เซนเซอร์สามแนวสี',
 
+'exif-filesource-3' => 'กล้องถ่ายภาพนิ่งดิจิทัล',
+
 'exif-scenetype-1' => 'ภาพถ่ายโดยตรง',
 
 'exif-customrendered-0' => 'โพลเซสส์ปกติ',
index 2e3b780..e840332 100644 (file)
@@ -148,7 +148,7 @@ $messages = array(
 'dec' => 'dek',
 
 # Categories related messages
-'pagecategories' => 'Sahypanyň {{PLURAL:$1|kategoriýasy|kategoriýalary}}',
+'pagecategories' => '{{PLURAL:$1|Kategoriýa|Kategoriýalar}}',
 'category_header' => '"$1" kategoriýasyndaky sahypalar',
 'subcategories' => 'Kiçi kategoriýalar',
 'category-media-header' => '"$1" kategoriýasyndaky multimediýa faýllary',
@@ -1270,7 +1270,7 @@ $1 {{PLURAL:$1|simwoldan|simwoldan}} köp bolmaly däl.',
 'nchanges' => '$1 {{PLURAL:$1|üýtgeşme|üýtgeşme}}',
 'recentchanges' => 'Soňky üýtgeşmeler',
 'recentchanges-legend' => 'Soňky üýtgeşmeleriň opsiýalary',
-'recentchangestext' => 'Wikidäki iň soňky üýtgeşmeleri şu sahypadan yzarlaň.',
+'recentchanges-summary' => 'Wikidäki iň soňky üýtgeşmeleri şu sahypadan yzarlaň.',
 'recentchanges-feed-description' => 'Bu lentadaky wikide edilen iň soňky üýtgeşmeleri yzarlaň.',
 'recentchanges-label-newpage' => 'Bu özgerdiş täze bir sahypa döretdi',
 'recentchanges-label-minor' => 'Bu bir ujypsyzja özgerdiş',
index f8afeaa..85e840b 100644 (file)
@@ -1435,7 +1435,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'nchanges' => '$1 {{PLURAL:$1|pagbabago|mga pagbabago}}',
 'recentchanges' => 'Kamakailang pagbabago',
 'recentchanges-legend' => 'Mga pagpipilian para sa kamakailang mga pagbabago',
-'recentchangestext' => 'Subaybayan ang mga pinakahuling pagbabago sa wiki sa pahinang ito.',
+'recentchanges-summary' => 'Subaybayan ang mga pinakahuling pagbabago sa wiki sa pahinang ito.',
 'recentchanges-feed-description' => 'Sundan ang pinakahuling mga pagbabago sa wiki sa pamamagitan ng feed na ito.',
 'recentchanges-label-newpage' => 'Lumikha ng isang bagong pahina ang pagbabagong ito',
 'recentchanges-label-minor' => 'Isa itong munting pagbabago',
index ae8577e..04e3743 100644 (file)
@@ -7,11 +7,31 @@
  * @ingroup Language
  * @file
  *
+ * @author Erdemaslancan
  * @author Ganbarzada
  * @author Tuzkozbir
  * @author Гусейн
  */
 
+$namespaceNames = array(
+       NS_MEDIA            => 'Medja',
+       NS_SPECIAL          => 'Xususi',
+       NS_TALK             => 'Nopegət',
+       NS_USER             => 'Okoədə',
+       NS_USER_TALK        => 'Okoədəj_nopegət',
+       NS_PROJECT_TALK     => '$1_Nopegətəti',
+       NS_FILE             => 'Fajl',
+       NS_FILE_TALK        => 'Fajli_nopegət',
+       NS_MEDIAWIKI        => 'MediaWiki',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki_nopegət',
+       NS_TEMPLATE         => 'Numunə',
+       NS_TEMPLATE_TALK    => 'Numunə_nopegət',
+       NS_HELP             => 'Koməg',
+       NS_HELP_TALK        => 'Koməgi_nopegət',
+       NS_CATEGORY         => 'Tispir',
+       NS_CATEGORY_TALK    => 'Tispiron_nopegət',
+);
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Линки жинтоно ријә быкәш:',
@@ -23,8 +43,12 @@ $messages = array(
 'tog-numberheadings' => 'Автоматик башлығон нумрәләмиш быкә',
 'tog-showtoc' => 'Мындәриҹоти сијоһи нишо быдә (3 сәрловһәсә веј быә сәһифон)',
 'tog-watchcreations' => 'Зијод кардеј чымы офәјә быә сәһифон бә ноғо доә сијоһи',
+'tog-watchdefault' => 'Зијод кардеј демы дәгиш кардә быә сәһифон бә ноғо доә сијоһи',
+'tog-watchmoves' => 'Зијод кардеј ном дәгиш кардә быә сәһифон бә ноғо доә сијоһи',
+'tog-watchdeletion' => 'Зијод кардеј сәһифон комон аз рәдд кардәме бә ноғо доә сијоһи',
 'tog-enotifwatchlistpages' => 'Ноғо доә сијоһиәдә сәһифон кејнә дәгиш бәбен бәмы е-номә бывығанд',
 'tog-watchlisthideown' => 'Чымы дәгишон ноғо доә сијһиәдә нијо кардеј',
+'tog-watchlisthidebots' => 'Нијо кардеј ботон дәгишон ноғо доә сијоһиәдә',
 'tog-watchlisthideminor' => 'Нијо кардеј гәдә дәгишон ноғо доә сијоһиәдә',
 
 # Dates
@@ -181,6 +205,7 @@ $messages = array(
 'viewtalkpage' => 'Мызокирә дијә кардеј',
 'otherlanguages' => 'Ҹо зывононәдә',
 'redirectedfrom' => '($1 чыјо унвон дәгиш кардә быә)',
+'redirectpagesub' => 'Увони дәгиш кардә сәһифәје',
 'lastmodifiedat' => 'Ын сәһифә охонә кәрә дәгиш беј: $2, $1.',
 'protectedpage' => 'Мыдофијә кардә быә сәһифә',
 'jumpto' => 'Дәвардеј бә:',
@@ -413,7 +438,7 @@ $messages = array(
 'revertmerge' => 'Бахш кардеј',
 
 # Diffs
-'history-title' => 'Дәгишон тарых "$1"',
+'history-title' => '$1: Дәгишон тарых',
 'lineno' => 'Сәтыр $1:',
 'compareselectedversions' => 'Сәчын кардә быә рәвојәтон мығојисә кардеј.',
 'editundo' => 'ләғв кардеј',
@@ -484,7 +509,7 @@ $messages = array(
 'nchanges' => '$1 {{PLURAL:$1|дәгиши|дәгишон}}',
 'recentchanges' => 'Ән нујә дәгишон',
 'recentchanges-legend' => 'Ән нујә дәгишон печыније',
-'recentchangestext' => 'Тәмшо быкән бы сәһифәдә че вики охоминә дәгишон нишо доә быән.',
+'recentchanges-summary' => 'Тәмшо быкән бы сәһифәдә че вики охоминә дәгишон нишо доә быән.',
 'recentchanges-feed-description' => 'Ым каналәдә быә охонә дәгишон дығғәтәдә огәт.',
 'recentchanges-label-newpage' => 'Де ым дәгиши тожә сәһифә сохтә бе',
 'recentchanges-label-minor' => 'Ым гадә дәгишије',
@@ -619,6 +644,8 @@ $messages = array(
 # Undelete
 'undeletelink' => 'чәшику дәвонијеј/бәрпо кардеј',
 'undeleteviewlink' => 'тәмшо кардеј',
+'undelete-search-submit' => 'Нәве',
+'undelete-show-file-submit' => 'Бәле',
 
 # Namespace form on various pages
 'namespace' => 'Номон мәкон:',
@@ -743,6 +770,11 @@ $messages = array(
 'tooltip-undo' => 'Дәғандә дәгиши рәдд кардеј ијән "сыфтәнә нишо дој" окардеј, де ләғви сәбәби нышон дој имкони.',
 'tooltip-summary' => 'Кыртә тәсвир бынывыштән',
 
+# Info page
+'pageinfo-header-edits' => 'Сәрост кардеј',
+'pageinfo-header-views' => 'Тәмшо',
+'pageinfo-subjectpage' => 'Сәһифә',
+
 # Browsing diffs
 'previousdiff' => '← Навынәни дәгиши',
 'nextdiff' => 'Думотоно шә дәгиши →',
@@ -753,6 +785,9 @@ $messages = array(
 'svg-long-desc' => 'SVG фајл, номинәләдә $1 × $2 пиксел, фајли памјә: $3',
 'show-big-image' => 'Тикәјән јолә кејфијјәтинә шикил',
 
+# Special:NewFiles
+'ilsubmit' => 'Нәве',
+
 # Bad image list
 'bad_image_list' => 'Формат бәпе быбу жыго:
 
@@ -779,6 +814,10 @@ $messages = array(
 * gpslongitude
 * gpsaltitude',
 
+'exif-gaincontrol-0' => 'Ни',
+
+'exif-saturation-0' => 'Ади',
+
 # External editor support
 'edit-externally' => 'Редактә кардеј ым фајли де заһири програм',
 'edit-externally-help' => '(Бо мыффәссәлә мәлумотон бә [//www.mediawiki.org/wiki/Manual:External_editors дәрсәвон бо сохтәј] дијә быкан)',
@@ -796,6 +835,16 @@ $messages = array(
 # Core parser functions
 'duplicate-defaultsort' => '\'\'\'Дыггәт:\'\'\' Еһтимал кардә быә "$2" классификасијә ачари нафконә "$1" классификасијә ачари етиборсоз кардә',
 
+# Special:Version
+'version-entrypoints-header-url' => 'URL',
+
+# Special:FilePath
+'filepath-page' => 'Фајл:',
+'filepath-submit' => 'Давард',
+
+# Special:FileDuplicateSearch
+'fileduplicatesearch-submit' => 'Нәве',
+
 # Special:SpecialPages
 'specialpages' => 'Хысусиә сәһифон',
 
index 0221598..bd1e1ec 100644 (file)
@@ -36,6 +36,7 @@
  * @author Myildirim2007
  * @author Reedy
  * @author Runningfridgesrule
+ * @author Sadrettin
  * @author Srhat
  * @author Stultiwikia
  * @author Suelnur
@@ -987,6 +988,7 @@ Son engelleme günlüğü girdisi referans için aşağıda sağlanmıştır:',
 'note' => "'''Not: '''",
 'previewnote' => "'''Bunun yalnızca bir ön izleme olduğunu unutmayın.'''
 Yaptığınız değişiklikler henüz kaydedilmedi!",
+'continue-editing' => 'Düzenlemeye devam et',
 'previewconflict' => 'Bu önizleme metin düzenleme kutucuğunun üstünde, maddenin eğer değişikliklerinizi kaydetmeyi seçerseniz nasıl görüneceğini yansıtır.',
 'session_fail_preview' => 'Özür dileriz. Oturum açılması ile ilgili veri kaybından kaynaklı değişikliğinizi kaydedemedik. Lütfen tekrar deneyiniz. Eğer bu yöntem işe yaramazsa oturumu kapatıp tekrar sisteme geri giriş yapınız.',
 'session_fail_preview_html' => "'''Üzgünüz! Oturum verisinin kaybolmasından dolayı düzenlemenizi işleme geçiremeyeceğiz.'''
@@ -1611,7 +1613,7 @@ Diğer kullanıcılar sizinle bu yolla iletişime geçtiğinde e-posta adresiniz
 'nchanges' => '$1 {{PLURAL:$1|değişiklik|değişiklik}}',
 'recentchanges' => 'Son değişiklikler',
 'recentchanges-legend' => 'Son değişiklikler seçenekleri',
-'recentchangestext' => 'Yapılan en son değişiklikleri bu sayfadan izleyin.',
+'recentchanges-summary' => 'Yapılan en son değişiklikleri bu sayfadan izleyin.',
 'recentchanges-feed-description' => "Bu beslemede, viki'de yapılan en son değişiklikleri takip edin.",
 'recentchanges-label-newpage' => 'Bu değişiklik yeni bir sayfa oluşturdu',
 'recentchanges-label-minor' => 'Bu küçük bir değişiklik',
@@ -3234,6 +3236,8 @@ Diğerleri varsayılan olarak gizlenecektir.
 'exif-subjectnewscode' => 'Konu kodu',
 'exif-event' => 'Adı geçen olay',
 'exif-personinimage' => 'Adı geçen kişi',
+'exif-originalimageheight' => 'Resmin kırpılmadan önceki yükseliği',
+'exif-originalimagewidth' => 'Resmin kırpılmadan önceki genişliği',
 
 # EXIF attributes
 'exif-compression-1' => 'Sıkıştırılmamış',
@@ -3821,6 +3825,7 @@ Resimler tam çözünürlükte görüntülenir, diğer dosya tipleri ilgili prog
 'api-error-mustbeposted' => 'İç hata: İstek HTTP POST gerektiriyor.',
 'api-error-nomodule' => 'İç hata: Yükleme modülü ayarı yapılmadı.',
 'api-error-ok-but-empty' => 'İç hata: Sunucu yanıt vermiyor.',
+'api-error-overwrite' => 'Varolan dosyanın üzerine yazmaya izin verilmiyor.',
 'api-error-stashfailed' => 'İç hata: Sunucu, geçici dosyaları kaybetti.',
 'api-error-unclassified' => 'Bilinmeyen bir hata oluştu.',
 'api-error-unknown-code' => 'Bilinmeyen hata: "$1"',
@@ -3828,5 +3833,6 @@ Resimler tam çözünürlükte görüntülenir, diğer dosya tipleri ilgili prog
 'api-error-unknown-warning' => 'Bilinmeyen uyarı: $1',
 'api-error-unknownerror' => 'Bilinmeyen hata: "$1".',
 'api-error-uploaddisabled' => 'Yükleme bu vikide devre dışı bırakılmıştır.',
+'api-error-verification-error' => 'Dosya bozuk veya yanlış uzantıya sahip olabilir.',
 
 );
index 12af386..726ecba 100644 (file)
@@ -38,13 +38,17 @@ $messages = array(
 'tog-enotifminoredits' => 'ndzurhumele e-mail loko ku endleka mindzulamiso leyi ntsongo',
 'tog-enotifrevealaddr' => 'Paluxa e-mail yamina eka mapapila lawa ndzimarhumelaka',
 'tog-shownumberswatching' => 'Komba ntsengo wa vatirhisi lava hlaleleke tluka',
+'tog-externaleditor' => 'Tirhisa xilulamisi xalehandle hikukongoma (Nhlawulo lowu i wavatirhisi lavangani ntokoto ntsena, wu lava ku cinca kokarhi eka khompuyuta yawena. [//www.mediawiki.org/wiki/Manual:External_editors vuxokoxoko hi mhakaleyi.])',
+'tog-externaldiff' => 'Tirhisa phurogiremi yalehandle hikukongoma (Nhlawulo lowu i wavatirhisi lavangani ntokoto ntsena, wu lava ku cinca kokarhi eka khompuyuta yawena. [//www.mediawiki.org/wiki/Manual:External_editors vuxokoxoko hi mhakaleyi.])',
 'tog-forceeditsummary' => 'Ndzivutisisi loko ndzinga hoxi nkomiso wa ndzulamiso lowu ndzi wu endleke',
 'tog-watchlisthideown' => 'Tumbeta mindzulamiso ya mina eka leswi ndzi swi languteke',
 'tog-watchlisthidebots' => 'Tumbeta mindzulamiso ya rhobhoti eka leswi ndzi swi languteke',
 'tog-watchlisthideminor' => 'Tumbeta mindzulamiso leyi tsongo eka leswi ndzi swi languteke',
 'tog-watchlisthideliu' => 'Tumbeta mindzulamiso ya vatirhisiwa lava ngheneke eka leswi ndzi swi languteke',
 'tog-watchlisthideanons' => 'Tumbeta mindzulamiso ya vatirhisiwa lavanga tivekiki eka leswi ndzi swi languteke',
+'tog-watchlisthidepatrolled' => 'Tumbeta mindzulamiso leyi languteriweke eka leswilangutiweke',
 'tog-ccmeonemails' => "Ndzirhumele khopi ya ti e-mail leti ndzi ti rhumelaka van'wana",
+'tog-showhiddencats' => 'Komba mintlawa leyi tumbetiweke',
 
 'underline-always' => 'Nkarhi hinkwawo',
 'underline-never' => "Swinga endleki ni kan'we",
@@ -108,11 +112,16 @@ $messages = array(
 'category-media-header' => 'Matluka ya xifaniso kumbe mpfumawulo eka ntlawa wa "$1"',
 'category-empty' => "''Ntlawa lowu eka nkarhi wa sweswi, wuhava matluka kumbe swifaniso.''",
 'hidden-categories' => '{{PLURAL:$1|Ntlawa lowu tumbetiweke|Mintlawa leyi tumbetiweke}}',
+'hidden-category-category' => 'Mintlawa leyi tumbetiweke',
 'category-subcat-count' => '{{PLURAL:$2|Ntlawa lowu wukhome mintlawa-ntsongo leyi landzelaka.|Ntlawa lowu wuni  {{PLURAL:$1|ntlwa-ntsongo|$1 wa mintlaw-ntsongo}}, eka $2 wa mintlawa-ntsongo.}}',
+'category-subcat-count-limited' => 'Ntlawa lowu wuna {{PLURAL:$1|ntlawa-ntsongo lowu|$1 mintlawa-ntsongo leyi}} landzelaka.',
 'category-article-count' => '{{PLURAL:$2|Ntlawa lowu wukhome matluka lamalandzelaka ntsena.| {{PLURAL:$1|Tluka leri ri le|$1 matluka lawa male}} ndzeni ka ntlawa lowu, eka $2 wamintlawa.}}',
+'category-article-count-limited' => '{{PLURAL:$1|Tluka leri rile|$1 Matluka lawa male}} ndzeni ka ntlawa lowu.',
 'category-file-count' => '{{PLURAL:$2|Ntlawa lowu wukhome matluka lamalandzelaka ntsena.| {{PLURAL:$1|Tluka leri ri le|$1 matluka lawa male}} ndzeni ka ntlawa lowu, eka $2 wamintlawa.}}',
+'category-file-count-limited' => '{{PLURAL:$1|Fayili leyi yile|$1 Tifayili leti tile}} ndzeni ka ntlawa lowu.',
 'listingcontinuesabbrev' => 'Mahlwe.',
 'noindex-category' => 'Matluka lama kayivelaka xikombandlela xa tinhlokomhaka',
+'broken-file-category' => 'Matluka lamangana minkhwekelo ya tifayili leyi tshovekeke',
 
 'about' => 'Timhaka hi',
 'article' => 'Matluka lama tsariweke',
@@ -140,6 +149,8 @@ $messages = array(
 'vector-action-delete' => 'Sula',
 'vector-action-move' => 'Yi sa kunwana',
 'vector-action-protect' => 'Sirhelela',
+'vector-action-undelete' => 'Cinca kusula',
+'vector-action-unprotect' => 'Cinca kusirhelela',
 'vector-view-create' => 'Tumbuluxa',
 'vector-view-edit' => 'Lulamisa',
 'vector-view-history' => 'Languta matimu',
@@ -159,37 +170,58 @@ $messages = array(
 'searcharticle' => 'Nghena',
 'history' => 'Matimu yaTluka',
 'history_short' => 'Matimu',
+'updatedmarker' => 'leswi lunghisiweke kusukela loko nihetelela nxaxamelo lowu',
 'printableversion' => 'Vona Ngangliso',
 'permalink' => 'Xithlavinyeti xa nkarhi hinkwawo',
+'print' => 'Gandlisa',
+'view' => 'Langutisa',
 'edit' => 'Lulamisa',
 'create' => 'Tumbuluxa',
 'editthispage' => 'Lulamisa Tluka leri',
 'create-this-page' => 'Tumbuluxa tluka leri',
 'delete' => 'Sula',
 'deletethispage' => 'Sula tluka leri',
+'undelete_short' => 'Cinca kusula {{PLURAL:$1|ndzulamiso|$1 mindzulamiso}}',
 'viewdeleted_short' => 'Vona {{PLURAL:$1|ndzulamiso lowu suriweke|$1 mindzulamiso leyi suriweke}}',
 'protect' => 'Sirhelela',
 'protect_change' => 'Cinca',
 'protectthispage' => 'Sirhelela tluka leri',
+'unprotect' => 'Cinca kusirhelela',
+'unprotectthispage' => 'Cinca kusirhelela tluka leri',
 'newpage' => 'Tluka rintswa',
+'talkpage' => 'Burisana hi tluka leri',
 'talkpagelinktext' => 'Mbulavulo',
 'specialpage' => 'Tluka ro hlawuleka',
 'personaltools' => "Switirhisi swa n'wini",
+'postcomment' => 'Xiyenge xintswa',
+'articlepage' => 'Langutisa tluka ra matsalwa',
 'talk' => 'Mbulavuriswano',
 'views' => 'Kulanguteka',
 'toolbox' => 'Bokisi ra switirhisiwa',
+'userpage' => 'Vona tluka ramutirhisi',
+'projectpage' => 'Vona tluka ra phurojeki',
+'imagepage' => 'Vona tluka ra fayili',
+'mediawikipage' => 'Vona tluka ra hungu',
+'templatepage' => 'Vona tluka ra xivumbiwa-ntirho',
+'viewhelppage' => 'Vona tluka ra mpfuno',
+'categorypage' => 'Vona tluka ra ntlawa',
+'viewtalkpage' => 'Vona bulo',
 'otherlanguages' => "Hi ti ndzimi tin'wana",
 'redirectedfrom' => '(Ritlerisewe kusuka e $1)',
 'redirectpagesub' => 'Tluka ro kongomisa',
 'lastmodifiedat' => 'Tluka leri rihetelele ku lulamisiwa hi $1, nkarhi kuri $2.',
+'viewcount' => "Tluka leri ri vhakeriwe {{PLURAL:$1|kan'we|makhambi ya $1}}.",
+'protectedpage' => 'Tluka leri sirheleriweke',
 'jumpto' => 'Tlulela eka:',
 'jumptonavigation' => 'Xikomba-ndlela',
 'jumptosearch' => 'Lava',
+'pool-errorunknown' => 'xiphiqo xoka xingativeki',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => 'ta {{SITENAME}}',
 'aboutpage' => 'Project:ta',
-'copyrightpage' => '{{ns:project}}:Mpfumelelo wo ringisa',
+'copyright' => 'Matsalwa makumeka ehansi ka $1.',
+'copyrightpage' => '{{ns:project}}:Swisivela ku encenyeta',
 'currentevents' => 'Leswi endlekaka sweswi',
 'currentevents-url' => 'Project:Leswi endlekaka sweswi',
 'disclaimers' => 'Swi alanandzu',
@@ -228,6 +260,8 @@ See [[Special:Version|version page]].',
 'toc' => 'Leswinga ndzeni',
 'showtoc' => 'Kombisa',
 'hidetoc' => 'Tumbeta',
+'collapsible-collapse' => 'Tsongahata',
+'collapsible-expand' => 'Ndlandlamuxa',
 'thisisdeleted' => 'Langutisa kumbe Thlerisela $1?',
 'viewdeleted' => 'Langutisa $1?',
 'restorelink' => '{{PLURAL:$1|ndzulamiso lowu suriweke|$1 mindzulamiso leyi suriweke}}',
@@ -239,6 +273,8 @@ See [[Special:Version|version page]].',
 'page-rss-feed' => '"$1" RSS Feed',
 'page-atom-feed' => '"$1" Atom Feed',
 'red-link-title' => '$1 (Tluka leri, arisi tsariwa)',
+'sort-descending' => 'Xaxameta kuya ehansi',
+'sort-ascending' => 'Xaxameta kuya ehenhla',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Tluka',
@@ -254,7 +290,9 @@ See [[Special:Version|version page]].',
 
 # Main script and global functions
 'nosuchaction' => 'Kuhava xiendlo xo tano',
-'nosuchactiontext' => 'Xikombelo xa URL a xitwisisiwi hi wiki',
+'nosuchactiontext' => 'Xikombelo xa URL a xitwisisiwi hi wiki.
+Ungava uhoxise kupeleta, kumbe u landze nkhwekelo lowu hoxeke.
+Xiphiqo lixe xingava xikomba xigalana eka software ya {{SITENAME}}.',
 'nosuchspecialpage' => 'Ku hava Tluka rero rohlawuleka',
 'nospecialpagetext' => '<strong>U kombele tluka ro hlawuleka ro ka ri nga ri kona.</strong>
 
@@ -291,6 +329,8 @@ Ukomberiwa ku pota xigalana lexi eka [[Special:ListUsers/sysop|mulanguteri]], u
 'readonly_lag' => 'The database has been automatically locked while the slave database servers catch up to the master',
 'internalerror' => 'Xihoxo xa le ndzeni',
 'internalerror_info' => 'Internal error: $1',
+'fileappenderrorread' => 'Hitsandzeke ku hlaya "$1" eku lulamiseni loku.',
+'fileappenderror' => 'Hintsndzeke ku lulamisa "$1" leswaku yiva "$2".',
 'filecopyerror' => 'Could not copy file "$1" to "$2".',
 'filerenameerror' => 'Could not rename file "$1" to "$2".',
 'filedeleteerror' => 'Could not delete file "$1".',
@@ -302,6 +342,7 @@ Ukomberiwa ku pota xigalana lexi eka [[Special:ListUsers/sysop|mulanguteri]], u
 'badarticleerror' => 'This action cannot be performed on this page.',
 'cannotdelete' => 'Could not delete the page or file specified.
 It may have already been deleted by someone else.',
+'cannotdelete-title' => 'Tluka "$1", ari suleki',
 'badtitle' => 'Bad title',
 'badtitletext' => 'The requested page title was invalid, empty, or an incorrectly linked inter-language or inter-wiki title.
 It may contain one or more characters which cannot be used in titles.',
@@ -311,6 +352,22 @@ Data here will not presently be refreshed.',
 Function: $1<br />
 Query: $2',
 'viewsource' => 'Vona tsalwa-tumbuluxa',
+'viewsource-title' => 'vona xihlovo xa $1',
+'protectedpagetext' => 'Tluka leri riserheleriwile kusivele ndzulamiso.',
+'viewsourcetext' => 'Unga langutisa naswona u kopa xihlovo xa tluka leri.',
+'viewyourtext' => 'Unga langutisa naswona ukopa xihlovo xa "mindzulamiso yawena" eka tluka leri.',
+'protectedinterface' => 'Tluka leri rina xihlanganisi xa software, naswona risirheleriwile kusivela kuthyakisiwa.',
+'editinginterface' => "'''Tivonele:''' ulekululamiseni tlika leri tirhisiwaka ku komba matsalwa yo hlanganisa ya software.
+Kucinca eka tluka leri kunga onha kulanguteka ka matluka eka vatirhisi van'wana.
+Leswaku uvona kuhundzuluxa langutisa [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], Phurojeki yo hundzuluxa tindzimi ya MediaWiki.",
+'cascadeprotected' => 'Tluka leri risirheleriwile eka mindzulamiso, hikwalaho kaleswi rikatsiweke eka {{PLURAL:$1|tluka, leri|matluka, lama}} sirheleriweke nswona mangana nhlawulo wo "katsakanya" lowu hlawuriweke:
+$2',
+'namespaceprotected' => "Uhava mfumelelo wo lulamisa matluka eka maviti-vundzawu bya '''$1'''.",
+'customcssprotected' => "Uhava mpfumelelo wo ulamisa tluka leri ra CSS, hikuva rina minhlawulo ya mutirhisi un'wana.",
+'customjsprotected' => "Uhava mpfumelelo wolulamisa tluka-xirhumiwa xa Java, hiuva ringava rikhome minhlawulo yamutirhisi un'wana.",
+'ns-specialprotected' => 'Matluka yohlawuleka amalulamisiwi.',
+'titleprotected' => 'Nhlokomhaka leyi yisirheleriwile ekutumbuluxiwa hi [[User:$1|$1]].
+Hikwlaho ka xivangelo xa "\'\'$2\'\'".',
 
 # Login and logout pages
 'logouttext' => "'''Uhumile eka wiki leyi.'''
@@ -328,14 +385,17 @@ Unda rivali ku cinca [[Special:Preferences|{{SITENAME}} minhlawulo ya wena]].',
 'nav-login-createaccount' => 'Pfula unghena / Tumbuluxa akhawunti',
 'loginprompt' => 'U fanele ku pfumelela swipfuneti leswaku u pfula unghena eka {{SITENAME}}.',
 'userlogin' => 'Pfula unghena / Tumbuluxa akhawunti',
+'userloginnocreate' => 'Pfula unghena',
 'logout' => 'Pfala u famba',
 'userlogout' => 'Pfala u famba',
+'notloggedin' => 'A wusipfula unghena',
 'nologin' => 'Xana upfumala akhawunti? $1.',
 'nologinlink' => 'Tumbuluxa akhawunti',
 'createaccount' => 'Tumbuluxa akhawunti',
 'gotaccount' => 'Xna una akhawunti hi khale? $1.',
 'gotaccountlink' => 'Pfula unghena',
 'userlogin-resetlink' => 'Xana u rivele vuxokoxoko bya wena byo pfula unghena?',
+'createaccountreason' => 'Xivangelo:',
 'loginsuccess' => "'''Ule ndzeni ka {{SITENAME}} tani hi \"\$1\".'''",
 'mailmypassword' => 'Rhumela vito-mpfungulo lerintwsa',
 'loginlanguagelabel' => 'Ririmi: $1',
@@ -522,7 +582,7 @@ Adiresi ya wena ya e-mail yitunberile loko van'wana va bula na wena.",
 'nchanges' => '$1 {{PLURAL:$1|wa ndzulamiso|wa mindzulamiso}}',
 'recentchanges' => 'Ku cinca ka sweswi-nyana',
 'recentchanges-legend' => 'Tindlela to langutisa ku cinca ka sweswinyana',
-'recentchangestext' => 'Landzelela mindzulamiso ya sweswinyana ya wiki leyi eka tluka leri.',
+'recentchanges-summary' => 'Landzelela mindzulamiso ya sweswinyana ya wiki leyi eka tluka leri.',
 'recentchanges-feed-description' => 'Landzelela mindzulamiso ya sweswinyana eka wiki leyi hi xiphameri-hungu lexi.',
 'recentchanges-label-newpage' => 'Ndzulamiso lowu wu tumbuluxe tluka rintswa',
 'recentchanges-label-minor' => 'Lowu i ndzulamiso wu tsongo',
index daea741..47bdcd1 100644 (file)
@@ -1360,7 +1360,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|үзгәртү|үзгәртү}}',
 'recentchanges' => 'Соңгы үзгәртүләр',
 'recentchanges-legend' => 'Соңгы үзгәртүләр көйләүләре',
-'recentchangestext' => 'Бу биттә {{grammar:genitive|{{SITENAME}}}} проектының соңгы үзгәртүләре күрсәтелә.',
+'recentchanges-summary' => 'Бу биттә {{grammar:genitive|{{SITENAME}}}} проектының соңгы үзгәртүләре күрсәтелә.',
 'recentchanges-feed-description' => 'Бу агымда соңгы үзгәртүләрне күзәтү.',
 'recentchanges-label-newpage' => 'Бу үзгәртү белән яңа бит төзелде',
 'recentchanges-label-minor' => 'Бу кече үзгәртү',
index ca1d641..611be9e 100644 (file)
@@ -1136,7 +1136,7 @@ Ul $1 {{PLURAL:$1|xäreftän}} kübräk bulırğa tieş tügel.',
 'nchanges' => '$1 {{PLURAL:$1|üzgärtü|üzgärtü}}',
 'recentchanges' => 'Soñğı üzgärtülär',
 'recentchanges-legend' => 'Soñğı üzgärtülär köyläwläre',
-'recentchangestext' => 'Bu bittä {{grammar:genitive|{{SITENAME}}}} proyektınıñ soñğı üzgärtüläre kürsätelä.',
+'recentchanges-summary' => 'Bu bittä {{grammar:genitive|{{SITENAME}}}} proyektınıñ soñğı üzgärtüläre kürsätelä.',
 'recentchanges-feed-description' => 'Bu ağımda soñğı üzgärtülärne küzätü.',
 'recentchanges-label-newpage' => 'Bu üzgärtü belän yaña bit tözelde',
 'recentchanges-label-minor' => 'Bu keçe üzgärtü',
index 1cec5c7..49910be 100644 (file)
@@ -645,7 +645,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'nchanges' => '$1 {{PLURAL:$1|өскерлиишкин}}',
 'recentchanges' => 'Амгы өскерлиишкиннер',
 'recentchanges-legend' => 'Амгы өскерлиишкиннерниң эдиглери',
-'recentchangestext' => 'Бо агымда викиниң сөөлгү өскерлиишкиннерин көөрү.',
+'recentchanges-summary' => 'Бо агымда викиниң сөөлгү өскерлиишкиннерин көөрү.',
 'recentchanges-feed-description' => 'Бо агымда викиниң сөөлгү өскерлиишкиннерин көөрү.',
 'recentchanges-label-newpage' => 'Бо өскерлиишкин чаа арынны чогааткан.',
 'recentchanges-label-minor' => 'Бо өскерлиишкин бичии-дир',
index 5d5a8b9..2423ec2 100644 (file)
@@ -1364,7 +1364,7 @@ HTML بەلگىسىنى تەكشۈرۈڭ.',
 'nchanges' => '$1 {{PLURAL:$1|ئۆزگەرتىش|ئۆزگەرتىش}}',
 'recentchanges' => 'يېقىنقى ئۆزگەرتىشلەر',
 'recentchanges-legend' => 'يېقىنقى ئۆزگەرتىش تاللانمىسى',
-'recentchangestext' => 'بۇ wiki نىڭ يېقىنقى ئۆزگىرىشىنى ئىز قوغلا.',
+'recentchanges-summary' => 'بۇ wiki نىڭ يېقىنقى ئۆزگىرىشىنى ئىز قوغلا.',
 'recentchanges-feed-description' => 'بۇ قانالنىڭ wiki دىكى يېقىنقى ئۆزگىرىشىنى ئىز قوغلا.',
 'recentchanges-label-newpage' => 'بۇ قېتىملىق تەھىر يېڭى بەتتىن بىرنى قۇرىدۇ',
 'recentchanges-label-minor' => 'بۇ ئازراقلا تەھرىرلەش',
index fe7a25b..1442e8f 100644 (file)
@@ -35,6 +35,7 @@
  * @author Sodmy
  * @author Urhixidur
  * @author VolodymyrF
+ * @author Vox
  * @author Yuriy Apostol
  * @author Дар'я Козлова
  * @author Тест
@@ -487,7 +488,7 @@ $messages = array(
 Будь ласка, почекайте і повторіть спробу отримати доступ пізніше.
 
 $1',
-'pool-timeout' => 'ЧаÑ\81 Ð¾Ñ\87Ñ\8bкування блокування вичерпано',
+'pool-timeout' => 'ЧаÑ\81 Ð¾Ñ\87Ñ\96кування блокування вичерпано',
 'pool-queuefull' => 'Сервер запитів заповнений',
 'pool-errorunknown' => 'Невідома помилка',
 
@@ -1184,8 +1185,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'Журнал приховувань',
-'suppressionlogtext' => 'Ð\9dижÑ\87е Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ð¹ Ñ\81пиÑ\81ок Ð²Ð¸Ð»Ñ\83Ñ\87енÑ\8c Ñ\82а Ð±Ð»Ð¾ÐºÑ\83ванÑ\8c, Ñ\8fкÑ\96 Ñ\81Ñ\82оÑ\81Ñ\83Ñ\8eÑ\82Ñ\8cÑ\81Ñ\8f Ð¼Ð°Ñ\82еÑ\80Ñ\96алÑ\96в, Ð¿Ñ\80иÑ\85ованиÑ\85 від адміністраторів.
£ [[Special:BlockList|Ñ\81пиÑ\81кÑ\83 Ð±Ð»Ð¾ÐºÑ\83ванÑ\8c]] Ð¼Ð¾Ð¶Ð½Ð° Ð¿ÐµÑ\80еглÑ\8fнÑ\83Ñ\82и Ñ\81пиÑ\81ок поточних блокувань.',
+'suppressionlogtext' => 'Ð\9dижÑ\87е Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¾ Ñ\81пиÑ\81ок Ð²Ð¸Ð»Ñ\83Ñ\87енÑ\8c Ñ\82а Ð±Ð»Ð¾ÐºÑ\83ванÑ\8c, Ð²ÐºÐ»Ñ\8eÑ\87аÑ\8eÑ\87и Ð¼Ð°Ñ\82еÑ\80Ñ\96али, Ð¿Ñ\80иÑ\85ованÑ\96 від адміністраторів.
\94ивÑ\96Ñ\82Ñ\8cÑ\81Ñ\8f [[Special:BlockList|Ñ\81пиÑ\81ок Ð±Ð»Ð¾ÐºÑ\83ванÑ\8c]] Ð´Ð»Ñ\8f Ð¿ÐµÑ\80еглÑ\8fдÑ\83 поточних блокувань.',
 
 # History merging
 'mergehistory' => "Об'єднання історій редагувань",
@@ -1217,7 +1218,9 @@ $1",
 'mergelogpagetext' => "Нижче наведений список останніх об'єднань історій сторінок.",
 
 # Diffs
-'history-title' => 'Історія змін сторінки «$1»',
+'history-title' => '$1: Історія змін',
+'difference-title' => '$1: Відмінності між версіями',
+'difference-title-multipage' => '$1 і $2: Відмінності між сторінками',
 'difference-multipage' => '(Різниця між сторінками)',
 'lineno' => 'Рядок $1:',
 'compareselectedversions' => 'Порівняти вибрані версії',
@@ -1578,7 +1581,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|зміна|зміни|змін}}',
 'recentchanges' => 'Нові редагування',
 'recentchanges-legend' => 'Налаштування нових редагувань',
-'recentchangestext' => 'На цій сторінці показані останні зміни на сторінках {{grammar:genitive|{{SITENAME}}}}.',
+'recentchanges-summary' => 'На цій сторінці показані останні зміни на сторінках {{grammar:genitive|{{SITENAME}}}}.',
 'recentchanges-feed-description' => 'Відстежувати останні зміни у вікі в цьому потоці.',
 'recentchanges-label-newpage' => 'Цим редагуванням створена нова сторінка',
 'recentchanges-label-minor' => 'Це незначна зміна',
@@ -1791,8 +1794,8 @@ $1',
 'backend-fail-writetemp' => 'Не вдалося записати до тимчасового файлу.',
 'backend-fail-closetemp' => 'Не вдалося закрити тимчасовий файл.',
 'backend-fail-read' => 'Не вдалося прочитати файл $1.',
-'backend-fail-create' => 'Не вдалося створити файл $1.',
-'backend-fail-maxsize' => 'Неможливо створити файл $1, бо він більший, ніж {{PLURAL:$2|$2 байт|$2 байти|$2 байтів}}.',
+'backend-fail-create' => 'Не вдалося зберегти файл $1.',
+'backend-fail-maxsize' => 'Неможливо зберегти файл $1, бо він більший, ніж {{PLURAL:$2|$2 байт|$2 байти|$2 байтів}}.',
 'backend-fail-readonly' => 'Інтерфейс сховища "$1" зараз доступний тільки для читання. Причина: "$2"',
 'backend-fail-synced' => 'Файл "$1" у внутрішньому сховищі рушія перебуває в неузгодженому стані',
 'backend-fail-connect' => 'Неможливо підключитися до сховища рушія "$1".',
@@ -2565,7 +2568,7 @@ $1',
 'ipboptions' => '2 години:2 hours,1 день:1 day,3 дні:3 days,1 тиждень:1 week,2 тижні:2 weeks,1 місяць:1 month,3 місяці:3 months,6 місяців:6 months,1 рік:1 year,назавжди:infinite',
 'ipbotheroption' => 'інший термін',
 'ipbotherreason' => 'Інша/додаткова причина:',
-'ipbhidename' => "Приховати ім'я користувача у редагуваннях ті списках",
+'ipbhidename' => "Приховати ім'я користувача у редагуваннях та списках",
 'ipbwatchuser' => 'Додати до списку спостереження сторінку користувача і його обговорення',
 'ipb-disableusertalk' => 'Заборонити користувачу редагувати свою сторінку обговорення під час блокування',
 'ipb-change-block' => 'Переблокувати користувача з цими налаштуваннями',
@@ -2573,7 +2576,7 @@ $1',
 'badipaddress' => 'IP-адреса записана в невірному форматі, або користувача з таким іменем не існує.',
 'blockipsuccesssub' => 'Блокування проведено',
 'blockipsuccesstext' => '[[Special:Contributions/$1|«$1»]] заблоковано.<br />
-Див. [[Special:BlockList|список заблокованих IP-адрес]].',
+Див. [[Special:BlockList|список заблокованих IP-адрес]] для перегляду блокувань.',
 'ipb-blockingself' => 'Ви збираєтеся заблокувати себе!  Ви дійсно бажаєте це зробити?',
 'ipb-confirmhideuser' => "Ви збираєтеся заблокувати користувача з опцією приховання імені. Це вилучить його ім'я з усіх списків та журналів. Ви точно хочете це зробити?",
 'ipb-edit-dropdown' => 'Редагувати причини блокувань',
index be67e6b..0dc37af 100644 (file)
@@ -930,7 +930,7 @@ HTML tags جانچئے.',
 'nchanges' => '$1 {{PLURAL:$1|تبدیلی|تبدیلیاں}}',
 'recentchanges' => 'حالیہ تبدیلیاں',
 'recentchanges-legend' => 'اِختیاراتِ حالیہ تبدیلیاں',
-'recentchangestext' => 'اس صفحے پر ویکی میں ہونے والی تازہ تریں تبدیلیوں کا مشاہدہ کیجیۓ۔',
+'recentchanges-summary' => 'اس صفحے پر ویکی میں ہونے والی تازہ تریں تبدیلیوں کا مشاہدہ کیجیۓ۔',
 'recentchanges-feed-description' => 'اس خورد میں ویکی پر ہونے والی تازہ تریں تبدیلیوں کا مشاہدہ کیجیۓ۔',
 'recentchanges-label-newpage' => 'اِس ترمیم نے نیا صفحہ تخلیق کردیا',
 'recentchanges-label-minor' => 'یہ ایک معمولی ترمیم ہے',
index c49a716..068a010 100644 (file)
@@ -419,7 +419,7 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 
 # Recent changes
 'recentchanges' => 'Yangi o‘zgartirishlar',
-'recentchangestext' => 'Ushbu sahifada siz eng so‘nggi o‘zgartirishlarni ko‘rishingiz mumkin.',
+'recentchanges-summary' => "Bu sahifada siz oxirgi o'zgartirishlarni ko'rishingiz mumkin.",
 'rcnote' => "Quyida $5, $4ga koʻra oxirgi {{PLURAL:$2|kun|'''$2''' kun}} davomida sodir boʻlgan {{PLURAL:$1|'''1''' oʻzgartirish|'''$1''' oʻzgartirishlar}} koʻrsatilgan.",
 'rclistfrom' => "$1dan boshlab yangi o'zgartirishlarni ko'rsat.",
 'rcshowhideminor' => 'Kichik tahrirlarni $1',
index 878c93b..6d0f94a 100644 (file)
@@ -537,6 +537,8 @@ $2',
 'filereadonlyerror' => 'No xe stà posibiłe modifegare el file "$1" parché el repository de file "$2" xe in modałità de soła letura.
 
 L\'aministradore che ło ga blocà ga fornìo sta spiegasion: "$3".',
+'invalidtitle-knownnamespace' => 'Titoło no vałido co namespace "$2" e testo "$3"',
+'invalidtitle-unknownnamespace' => 'Titoło no vałido co namespace sconosùo "$1" e testo "$2"',
 
 # Virus scanner
 'virus-badscanner' => 'Erore de configurasion: antivirus sconossuo: "$1"',
@@ -909,6 +911,11 @@ Sti argomenti i xe stà omessi.",
 'parser-template-recursion-depth-warning' => 'Xe stà rajunto el limite màssimo de ricorsion in tel modèl ($1)',
 'language-converter-depth-warning' => 'Limite de profondità del convertidor de lengua superà ($1)',
 'node-count-exceeded-category' => 'Pajine ndove che el node-count supera el limite',
+'node-count-exceeded-warning' => 'Sta pajina ga superà el numaro limite de nodi',
+'expansion-depth-exceeded-category' => 'Pajine ndove che vien superà ła profondità de espansion',
+'expansion-depth-exceeded-warning' => 'Sta pajina ga superà el limite de profondità de espansion',
+'parser-unstrip-loop-warning' => 'Xe sta riłevà un ciclo de Unstrip',
+'parser-unstrip-recursion-limit' => 'Superadi i limiti de recursion de Unstrip ($1)',
 
 # "Undo" feature
 'undo-success' => 'Sta modifica la pode èssar anulà. Verifica el confronto presentà de seguito par èssar sicuro che el contenuto el sia come te lo voli e quindi salva le modifiche par conpletar la procedura de anulamento.',
@@ -954,7 +961,7 @@ Legenda: '''({{int:cur}})''' = difarense co l'ultima version, '''({{int:last}})'
 'history-feed-empty' => 'La pàxena richiesta no la esiste; la podarìa èssar stà scancełà dal sito o rinominà. Verifica con la [[Special:Search|pàxena de riserca]] se ghe xè nove pàxene.',
 
 # Revision deletion
-'rev-deleted-comment' => '(comento cavà)',
+'rev-deleted-comment' => 'Comento cavà',
 'rev-deleted-user' => '(nome utente cavà)',
 'rev-deleted-event' => '(elemento cavà)',
 'rev-deleted-user-contribs' => '[nome utente o indirisso IP cavà - modifica sconta dai contributi]',
@@ -981,8 +988,8 @@ Controła el [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rejis
 I aministradori i połe uncora [$1 vixualixare el confronto] se i vołe.",
 'rev-deleted-diff-view' => "Una dełe revixion de sto confronto de version ła xe stà '''scancelà'''.
 Te połi uncora vixuałixare sto confronto; controłare el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejistro dełe scancełasion] par ulteriori detaji.",
-'rev-suppressed-diff-view' => "Una dele revision de sta difarensa la xe stà '''sopressa'''.
-Come aminitrador, te pol vardar el [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registro de sopression] par ulteriori detagli.",
+'rev-suppressed-diff-view' => "Una dełe revixion de sto confronto de version ła xe stà '''rimosa'''.
+Te połi uncora vixuałixare sto confronto; controłare el [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rejistro dełe rimosion] par ulteriori detaji.",
 'rev-delundel' => 'mostra/scondi',
 'rev-showdeleted' => 'mostra',
 'revisiondelete' => 'Scanceła o ripristina version',
@@ -1048,7 +1055,7 @@ No ti gà acesso su de ela.',
 
 # Suppression log
 'suppressionlog' => 'Registro dei ocultamenti',
-'suppressionlogtext' => "Qua soto se cata na lista de le ultime scancelazioni e blochi che riguarda contenuti sconti dai aministradori. Varda la [[Special:IPBlockList|lista dei IP blocà]] par védar l'elenco dei blochi atualmente ativi.",
+'suppressionlogtext' => "Cua soto se cata na lista de łe ultime scancełasion e rimosion che riguarda contenuti sconti dai aministradori. Varda ła [[Special:BlockList|lista dei IP blocadi]] par vedare l'elenco de łe operasion de bloco atualmente ative.",
 
 # History merging
 'mergehistory' => 'Union cronologie',
@@ -1080,7 +1087,9 @@ Assicùrete che la continuità storica de la pagina no la vegna alterà.',
 'mergelogpagetext' => "Qua de seguito vien presentà na lista de le ultime operazion de unione de la cronologia de na pagina in un'altra.",
 
 # Diffs
-'history-title' => "Storia dei canbiamenti de ''$1''",
+'history-title' => '$1: cronołojia dełe modifeghe',
+'difference-title' => '$1: difarense fra łe version',
+'difference-title-multipage' => '$1 e $2: difarense fra łe pajine',
 'difference-multipage' => '(Difarensa tra le pagine)',
 'lineno' => 'Riga $1:',
 'compareselectedversions' => 'Confronta le version segnàe',
@@ -1161,6 +1170,7 @@ Prova a métarghe \"all:\" davanti al testo che te serchi par vardar in tuti i n
 'qbsettings-fixedright' => 'Fisso a destra',
 'qbsettings-floatingleft' => 'Fluttuante a sinistra',
 'qbsettings-floatingright' => 'Fluttuante a destra',
+'qbsettings-directionality' => 'Fiso, a seconda de ła diresion del testo nte ła to lengua',
 
 # Preferences page
 'preferences' => 'Prefarense',
@@ -1179,12 +1189,14 @@ Prova a métarghe \"all:\" davanti al testo che te serchi par vardar in tuti i n
 'prefs-rc' => 'Ultime modifeghe',
 'prefs-watchlist' => 'Tegnùi de òcio',
 'prefs-watchlist-days' => 'Nùmaro de giòrni da far védar nei osservati speciali:',
-'prefs-watchlist-days-max' => 'Maximum $1 {{PLURAL:$1|day|days}}',
+'prefs-watchlist-days-max' => 'Masimo $1 dì',
 'prefs-watchlist-edits' => 'Nùmaro de modifiche da far védar con le funzion avanzade:',
-'prefs-watchlist-edits-max' => '(nùmaro massimo: 1000)',
+'prefs-watchlist-edits-max' => 'Numaro massimo: 1000',
 'prefs-watchlist-token' => "Segnal par le pagine tegnùe d'ocio:",
 'prefs-misc' => 'Preferense varie',
 'prefs-resetpass' => 'Cànbia password',
+'prefs-changeemail' => 'Canbia indiriso de posta ełetronega',
+'prefs-setemail' => 'Inposta un indiriso de posta ełetronega',
 'prefs-email' => 'Preferense e-mail',
 'prefs-rendering' => 'Aspeto grafico',
 'saveprefs' => 'Salva le preferense',
@@ -1206,7 +1218,7 @@ Prova a métarghe \"all:\" davanti al testo che te serchi par vardar in tuti i n
 'savedprefs' => 'Le to preferense łe xè stà salvae.',
 'timezonelegend' => 'Fuso orario:',
 'localtime' => 'Ora locale:',
-'timezoneuseserverdefault' => "Dòpara l'ora del server",
+'timezoneuseserverdefault' => 'Dopara el orario predefinìo de wiki ($1)',
 'timezoneuseoffset' => 'Altro (spesifica difarensa)',
 'timezoneoffset' => 'Difarensa¹:',
 'servertime' => 'Ora del server:',
@@ -1241,7 +1253,8 @@ Sta operassion no la pol èssar anulà.',
 'prefs-registration' => 'Data de registrassion:',
 'yourrealname' => 'El to vero nome:',
 'yourlanguage' => 'Lengua:',
-'yourvariant' => 'Variante de linguaggio:',
+'yourvariant' => 'Variante de ła lengua:',
+'prefs-help-variant' => 'La variante o grafia in cui te preferisi che te vegna mostrade łe pajine de wiki.',
 'yournick' => 'Firma:',
 'prefs-help-signature' => 'Co se scrive in te le pagine de discussion, a se gà senpre da firmar scrivendo "<nowiki>~~~~</nowiki>", che vegnarà convertìo in te la propria firma seguìa da data e ora.',
 'badsig' => 'Erór ne ła firma non standard, verifica i tag HTML.',
@@ -1273,12 +1286,16 @@ Co qualcheduni te scrivarà, nol vedarà mia el to indirizo.',
 'prefs-displaywatchlist' => 'Opzioni de visualixassion',
 'prefs-diffs' => 'Difarense',
 
+# User preference: e-mail validation using jQuery
+'email-address-validity-valid' => "L'indiriso de posta eletronega pararìa vałido",
+'email-address-validity-invalid' => 'Inserisi un indiriso de posta eletronega vałido',
+
 # User rights
 'userrights' => 'Gestion dei parmessi relativi ai utenti',
 'userrights-lookup-user' => 'Gestion de i gruppi utente',
 'userrights-user-editname' => 'Inserir el nome utente:',
 'editusergroup' => 'Modifica grupi utente',
-'editinguser' => "Modifica dei diriti assegnà a l'utente '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+'editinguser' => "Modifega dei diriti utente de'l utente '''[[User:$1|$1]]''' $2",
 'userrights-editusergroup' => 'Modifica grupi utente',
 'saveusergroups' => 'Salva grupi utente',
 'userrights-groupsmember' => 'Apartien ai grupi:',
@@ -1291,7 +1308,7 @@ Co qualcheduni te scrivarà, nol vedarà mia el to indirizo.',
 'userrights-no-interwiki' => 'No te ghè i parmessi necessari par modificar i diriti dei utenti su altri siti.',
 'userrights-nodatabase' => "El database $1 no l'esiste mìa o no l'è un database local.",
 'userrights-nologin' => "Par assegnarghe diriti ai utenti te ghè da [[Special:UserLogin|efetuar l'acesso]] come aministrador.",
-'userrights-notallowed' => 'No te ghè i parmessi necessari par assegnarghe diriti ai utenti.',
+'userrights-notallowed' => 'No te ghe i parmesi necesari par xontarghe o cavarghe diriti ai utenti.',
 'userrights-changeable-col' => 'Grupi che te pol canbiar',
 'userrights-unchangeable-col' => 'Grupi che no te pol canbiar',
 
@@ -1378,11 +1395,13 @@ Co qualcheduni te scrivarà, nol vedarà mia el to indirizo.',
 'right-siteadmin' => 'Bloca e desbloca el database',
 'right-override-export-depth' => 'Esporta le pàxene, includendo le pàxene ligàe fin a na profondità de 5',
 'right-sendemail' => 'Mandarghe e-mail a cheialtri utenti',
+'right-passwordreset' => 'Vedi i mesaji de rinpostasion de ła password',
 
 # User rights log
 'rightslog' => 'Diriti de i utenti',
 'rightslogtext' => 'Sto qua el xe el registro de le modifiche ai diriti assegnà ai utenti.',
 'rightslogentry' => "gà modificà l'apartenenza de $1 dal grupo $2 al grupo $3",
+'rightslogentry-autopromote' => 'xe stà automategamente promoso/a da $2 a $3',
 'rightsnone' => '(nissun)',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -1410,6 +1429,7 @@ Co qualcheduni te scrivarà, nol vedarà mia el to indirizo.',
 'action-suppressionlog' => 'vardar sto registro privato',
 'action-block' => 'blocar sto utente in scritura',
 'action-protect' => 'canbiar i livèi de protession par sta pàxena',
+'action-rollback' => "Anuła in presa łe modifeghe fate da l'ultimo utente intervegnù so' na determinada pajina.",
 'action-import' => "inportar sta pàxena da n'antra wiki",
 'action-importupload' => 'inportar sta pàxena tramite caricamento da file',
 'action-patrol' => 'segnar le modìfeghe dei altri utenti come verificàe',
@@ -1425,7 +1445,7 @@ Co qualcheduni te scrivarà, nol vedarà mia el to indirizo.',
 'nchanges' => '$1 {{PLURAL:$1|canbiamento|canbiamenti}}',
 'recentchanges' => 'Ultimi canbiamenti',
 'recentchanges-legend' => 'Prefarense par i ultimi canbiamenti',
-'recentchangestext' => 'Qua se vede i ultimi canbiamenti fati a sto sito.',
+'recentchanges-summary' => 'Qua se vede i ultimi canbiamenti fati a sto sito.',
 'recentchanges-feed-description' => 'Tien tracia dei ultimi canbiamenti fati a sto sito',
 'recentchanges-label-newpage' => 'Sta modifica la ga creà na pagina nova',
 'recentchanges-label-minor' => 'Sto qua el xe un canbiamento picenin',
@@ -1451,9 +1471,11 @@ Co qualcheduni te scrivarà, nol vedarà mia el to indirizo.',
 'number_of_watching_users_pageview' => '[osservà da {{PLURAL:$1|un utente|$1 utenti}}]',
 'rc_categories' => 'Limita a le categorie (separà da "|")',
 'rc_categories_any' => 'Qualsiasi',
+'rc-change-size-new' => '$1 byte dopo ła modifega',
 'newsectionsummary' => '/* $1 */ sezion nova',
 'rc-enhanced-expand' => 'Mostra detaji (richiede JavaScript)',
 'rc-enhanced-hide' => 'Scondi detaji',
+'rc-old-title' => 'creà in orijine come "$1"',
 
 # Recent changes linked
 'recentchangeslinked' => 'Canbiamenti ligà a sta pagina',
@@ -1505,12 +1527,13 @@ Varda la [[Special:NewFiles|galerìa dei file nóvi]] par na vision de insieme.'
 'ignorewarnings' => 'Ignora i messagi de avertimento del sistema',
 'minlength1' => 'El nome del file el ga da contegner almanco un caràtere.',
 'illegalfilename' => 'El nome file "$1" el contien caràteri che no xè permessi nei titoli de le pagine. Par piaser, rinomina el file e próa a ricaricarlo.',
+'filename-toolong' => 'I nomi dei file no połe superare i 240 byte.',
 'badfilename' => 'El nome de el file el xè stà convertio in "$1".',
-'filetype-mime-mismatch' => "L'estension del file no a corisponde con el tipo MIME.",
+'filetype-mime-mismatch' => 'L\'estension del file ".$1" no corisponde al tipo MIME del file ($2).',
 'filetype-badmime' => 'No xe consentìo de cargar file de tipo MIME "$1".',
 'filetype-bad-ie-mime' => 'No se pode cargar sto file, parché da Internet Explorer el vegnarìa rilevà come "$1", che xe un tipo de file disativà e potensialmente pericoloso.',
 'filetype-unwanted-type' => "Cargar file de tipo '''\".\$1\"''' xe sconsiglià. {{PLURAL:\$3|El tipo de file consiglià el|I tipi de file consiglià i}} xe \$2.",
-'filetype-banned-type' => "Cargar file de tipo '''\".\$1\"''' no xe mìa consentìo. {{PLURAL:\$3|El tipo de file consentìo el|I tipi de file consentìi i}} xe \$2.",
+'filetype-banned-type' => "'''\".\$1\"''' {{PLURAL:\$4|no'l xe un tipo de file consentìo|no łi xe tipi de file consentidi}}. {{PLURAL:\$3|El tipo de file consentìo xe|I tipi de file consentidi xe}} \$2.",
 'filetype-missing' => 'El file no\'l gà nissuna estension (ad es. ".jpg").',
 'empty-file' => 'El file che te ghè cargà el xe vodo.',
 'file-too-large' => 'El file che te ghè cargà el xe massa grando.',
@@ -1526,6 +1549,7 @@ Varda la [[Special:NewFiles|galerìa dei file nóvi]] par na vision de insieme.'
 'large-file' => 'Se racomanda de no superar mìa le dimension de $1 par ciascun file; sto file el xe grando $2.',
 'largefileserver' => 'El file el supera le dimension consentìe da la configurazion del server.',
 'emptyfile' => 'El file che te ghè caricà el xè aparentemente vodo. Podarìa èssar par un eror nel nome del file. Par piaser controla se te vol dal bon caricar sto file.',
+'windows-nonascii-filename' => 'Sta wiki no suporta nomi de file co carateri speciałi.',
 'fileexists' => "Un file co sto nome el esiste de xà, par piaser controła '''<tt>[[:$1]]</tt>''' se no te sì sicuro de volerlo sovrascrìvar.
 [[$1|thumb]]",
 'filepageexists' => "La pagina de descrizion de sto file la xe zà stà creà a '''<tt>[[:$1]]</tt>''', anca se no ghe xe gnancora un file co sto nome.
@@ -1559,6 +1583,8 @@ Se te vol cargar el file istesso, par piaser torna indrio e canbia el nome che t
 'php-uploaddisabledtext' => 'El caricamento de file tramite PHP el xe disabilità. Contròla la configurassion de file_uploads.',
 'uploadscripted' => 'Sto file contegne codexe HTML o de script, che podaria essere interpretà eroneamente da un browser web.',
 'uploadvirus' => 'Sto file contegne un virus! Detagli: $1',
+'uploadjava' => 'Sto file xe un file ZIP che contien un file Java ".class".
+Cargar file Java no xe consentìo, parché łi podarìa cauxare on ajiramento de łe restrision de sicuresa.',
 'upload-source' => 'File de origine',
 'sourcefilename' => 'Nome del file de origine:',
 'sourceurl' => 'URL de origine:',
@@ -1590,6 +1616,31 @@ Se el problema el persiste, contatar un [[Special:ListUsers/sysop|aministrador]]
 'upload-too-many-redirects' => "In te l'URL ghe jera massa rimandi",
 'upload-unknown-size' => 'Dimension sconossiùa',
 'upload-http-error' => 'Se gà verificà un eròr HTTP: $1',
+'upload-copy-upload-invalid-domain' => 'No xe consentìo cargare copie da sto dominio.',
+
+# File backend
+'backend-fail-stream' => 'Inposibiłe traxmetare el file $1.',
+'backend-fail-backup' => 'Inposibiłe fare el backup del file $1.',
+'backend-fail-notexists' => 'El file $1 no existe.',
+'backend-fail-hashes' => "Inposibiłe otegnere el hash dei file pa'l confronto.",
+'backend-fail-notsame' => 'Existe xà un file no identico a  $1 .',
+'backend-fail-invalidpath' => '$1 no xe un percorso de archiviasion vałido.',
+'backend-fail-delete' => 'Inposibiłe scançełare el file "$1".',
+'backend-fail-alreadyexists' => 'El file $1 existe xà.',
+'backend-fail-store' => 'Inposibiłe memorixare el file  $1  in  $2 .',
+'backend-fail-copy' => 'Inposibiłe copiare el file "$1" in "$2".',
+'backend-fail-move' => 'Inposibiłe spostare el file  $1  in  $2 .',
+'backend-fail-opentemp' => 'Inposibiłe verxare el file tenporaneo',
+'backend-fail-writetemp' => 'Inposibiłe creare el file tenporaneo.',
+'backend-fail-closetemp' => 'Inposibiłe sarare el file tenporaneo',
+'backend-fail-read' => 'Inposibiłe lexare el file $1.',
+'backend-fail-create' => 'Inposibiłe creare el file "$1".',
+'backend-fail-maxsize' => 'Inposibiłe creare el file $1 parché el xe pi grando de {{PLURAL:$2|un|$2}} byte.',
+'backend-fail-readonly' => 'El backend "$1" xe atualmente in soła letura. La raxon indicà xe: "$2"',
+'backend-fail-synced' => 'El file "$1" xe incoerente rento i backend de ła memoria interna.',
+'backend-fail-connect' => 'Inposibiłe conétarse al backend de memoria "$1".',
+'backend-fail-internal' => 'Se ga verifegà on erore sconosùo nte\'l backend de memoria "$1".',
+'backend-fail-usable' => 'Inposibiłe modifegare el file $1 a cauxa de autorixasion insuficenti o directory mancanti.',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'Acesso negà',
@@ -1608,6 +1659,7 @@ Xe parmesso entrar solo in tei file, no in te le cartèle.',
 Sta wiki la xe configurà come pùblica.
 Par na major sicuressa, img_auth.php el xe disabilità.',
 'img-auth-noread' => 'L\'utente no\'l gà mia dirito de lèzar "$1".',
+'img-auth-bad-query-string' => "L'indiriso URL contien na stringa de query invałida.",
 
 # HTTP errors
 'http-invalid-url' => 'URL mia valido: $1',
@@ -1633,9 +1685,8 @@ Par na major sicuressa, img_auth.php el xe disabilità.',
 'upload_source_file' => ' (un file sul to computer)',
 
 # Special:ListFiles
-'listfiles-summary' => "Sta pagina speciale la fa védar tuti i file caricài.
-I file caricài piessè de recente i vien mostrà a l'inizio de la lista.
-Par modificar l'ordinamento, struca su l'intestazion de la colona presièlta.",
+'listfiles-summary' => "Sta pajina speciałe ła fa vedare tuti i file caricadi.
+Se l'utente modifega l'ordenamento, vien mostradi soło i file caricadi pi de recente da l'utente.",
 'listfiles_search_for' => 'Serca file par nome:',
 'imgfile' => 'file',
 'listfiles' => 'Lista dei file',
@@ -1758,7 +1809,7 @@ Qua soto vien mostrà la descrission presente in te la [$2 pàxena de descrissio
 'statistics-users-active-desc' => "Utenti che gà fato almanco un'azion in {{PLURAL:$1|tel'ultimo zorno|in tei ultimi $1 zorni}}",
 'statistics-mostpopular' => 'Pagine piassè visità',
 
-'disambiguations' => 'Pagine de disanbigua',
+'disambiguations' => 'Pajine cołegade a pajine de dixanbiguasion',
 'disambiguationspage' => 'Template:Disambigua',
 'disambiguations-text' => "Le pagine ne la lista che segue le contien dei colegamenti a '''pagine de disanbiguazion''' e no a l'argomento a cui le dovarìà far riferimento.<br />
 Vien considerà pagine de disanbiguazion tute quele che contien i modèi elencà in [[MediaWiki:Disambiguationspage]]",
@@ -1854,8 +1905,8 @@ Par piaser tien conto che altri siti web i podarìa realizar colegamenti ai file
 'booksources-invalid-isbn' => "El nùmaro ISBN inserìo no'l xe mia valido: controla de novo se te lo ghè copià justo da la fonte originale.",
 
 # Special:Log
-'specialloguserlabel' => 'Utente:',
-'speciallogtitlelabel' => 'Titolo:',
+'specialloguserlabel' => 'Asion efetuà da:',
+'speciallogtitlelabel' => 'Asion efetuà so:',
 'log' => 'Registri',
 'all-logs-page' => 'Tuti i registri pùblici',
 'alllogstext' => 'Vixualixazion unificà de tuti i registri disponibili de {{SITENAME}}.
@@ -1895,12 +1946,13 @@ Varda anca le [[Special:WantedCategories|categorie domandà]].',
 'sp-deletedcontributions-contribs' => 'contributi',
 
 # Special:LinkSearch
-'linksearch' => 'Colegamenti foresti',
+'linksearch' => 'Riçerca cołegamenti esterni',
 'linksearch-pat' => 'Espression de riserca:',
 'linksearch-ns' => 'Namespace:',
 'linksearch-ok' => 'Serca',
-'linksearch-text' => 'Se pol doparar dei metacaràteri, par es. "*.wikipedia.org".<br />
-Protocòli suportè: <tt>$1</tt>',
+'linksearch-text' => 'Xe posibiłe doparare metacarateri, come "*.wikipedia.org".<br />
+Xe necesario almanco un dominio de primo liveło, tipo "*.org".<br />
+Protocołi suportadi: <tt>$1</tt> (no sta xontare nesuno de sti cuà inte ła to riçerca).',
 'linksearch-line' => '$1 presente ne la pagina $2',
 'linksearch-error' => "I metacaràteri i pode vegner doparài solo a l'inizio del nome de l'host.",
 
@@ -2093,7 +2145,8 @@ L'ultima modefega l'è stà fata da [[User:$3|$3]] ([[User talk:$3|discussion]]{
 
 # Protect
 'protectlogpage' => 'Protesion',
-'protectlogtext' => 'De seguito xe elencàe le azion de protezion e sbloco de le pagine.',
+'protectlogtext' => "De seguito xe elencade łe modifeghe ałe protesion dełe pajine.
+Vedi ła [[Special:ProtectedPages|lista dełe pajine protete]] pa l'elenco de łe protesion de pajina atualmente ative.",
 'protectedarticle' => 'ga proteto "[[$1]]"',
 'modifiedarticleprotection' => "gà canbià el livèl de protession de ''[[$1]]''",
 'unprotectedarticle' => 'gà sblocà "[[$1]]"',
@@ -2286,8 +2339,8 @@ $1',
 'ipb-confirm' => 'Conferma el bloco',
 'badipaddress' => "L'indirisso IP indicà no'l xè mìa coreto.",
 'blockipsuccesssub' => 'Bloco eseguìo',
-'blockipsuccesstext' => "[[Special:Contributions/$1|$1]] l'è sta bloccà.<br />
-Varda [[Special:BlockList|lista IP bloccati]] par védar tuti i blochi.",
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] xe stà blocà.<br />
+Varda [[Special:BlockList|lista IP blocadi]] par vedare tuti i blochi.',
 'ipb-blockingself' => 'Sito drio blocar te steso! Sito sicuro de voerlo fare?',
 'ipb-edit-dropdown' => 'Motivi par el bloco',
 'ipb-unblock-addr' => 'Sbloca $1',
@@ -2326,7 +2379,7 @@ Qua soto ghe xe el registro dei blochi:',
 Qua soto ghe xe el registro de le sopression:',
 'blocklogentry' => 'ga blocà [[$1]] par un periodo de $2 $3',
 'reblock-logentry' => "gà canbià le inpostassion del bloco par [[$1]] co' na scadensa de $2 $3",
-'blocklogtext' => "Sto qua xè un elenco de azioni de bloco e sbloco dei indirizi IP. I indirizi blocai in automatico no i xè mìa elencai. Varda l'[[Special:BlockList|elenco dei IP blocà]] par la lista dei indirizi el cui bloco el xè operativo.",
+'blocklogtext' => "Sto cua xe un elenco de asion de bloco e sbloco de indirizi IP de utenti. I indirisi blocadi in automatego no xe elencadi. Varda l'[[Special:BlockList|elenco dei IP blocadi]] pa ła lista dei indirisi che ga un bloco operativo.",
 'unblocklogentry' => 'ga sblocà $1',
 'block-log-flags-anononly' => 'solo utenti anonimi',
 'block-log-flags-nocreate' => 'creasion acount blocà',
@@ -2529,8 +2582,8 @@ Tute łe operazion de inportazion trans-wiki łe xè notà nel [[Special:Log/imp
 'import-interwiki-namespace' => 'Namespace de destinassion:',
 'import-upload-filename' => 'Nome del file:',
 'import-comment' => 'Comento:',
-'importtext' => 'Par piaser, esporta el file da la wiki de origine doparando la [[Special:Export|funsion de esportassion]].
-Salvalo sul to computer e càrghelo qua.',
+'importtext' => "Se połe esportare el file da ła fonte wiki doparando ła [[Special:Export|funsion de esportasion]].
+Salveło so'l to conpiuter e carghelo cuà.",
 'importstart' => 'Inportazion de łe pàxene in corso...',
 'import-revision-count' => '{{PLURAL:$1|una revixion importà|$1 revixion importae}}',
 'importnopages' => 'Nissuna pàxena da inportar.',
@@ -2580,7 +2633,7 @@ Salvalo sul to computer e càrghelo qua.',
 'tooltip-ca-viewsource' => 'Sta pagina la xe proteta, ma te poli vardar el so testo',
 'tooltip-ca-history' => 'Version vece de sta pagina',
 'tooltip-ca-protect' => 'Protezi sta pagina',
-'tooltip-ca-unprotect' => 'Cava la protession a sta pagina',
+'tooltip-ca-unprotect' => 'Canbia ła protesion de sta pajina',
 'tooltip-ca-delete' => 'Scansela sta pagina',
 'tooltip-ca-undelete' => "Ripristina la pàxena come l'era prima de la scancelassion",
 'tooltip-ca-move' => 'Sposta sta pagina',
@@ -2779,8 +2832,8 @@ I colegamenti dopo, su la stessa riga, i xe considerai come ecession (cioè, pag
 'exif-colorspace' => 'Spazio de i cołori',
 'exif-componentsconfiguration' => 'Significato de ciascuna componente',
 'exif-compressedbitsperpixel' => 'Modalità de compression imagine',
-'exif-pixelydimension' => 'Largheza efetiva imagine',
-'exif-pixelxdimension' => 'Alteza efetiva imagine',
+'exif-pixelydimension' => 'Larghesa imajine',
+'exif-pixelxdimension' => 'Altesa imajine',
 'exif-usercomment' => "Note de l'utente",
 'exif-relatedsoundfile' => 'File audio cołegà',
 'exif-datetimeoriginal' => 'Data e ora de creassion de i dati',
@@ -2794,9 +2847,9 @@ I colegamenti dopo, su la stessa riga, i xe considerai come ecession (cioè, pag
 'exif-exposureprogram' => 'Programa de esposission',
 'exif-spectralsensitivity' => 'Sensibilità spetrałe',
 'exif-isospeedratings' => 'Sensibiłità ISO',
-'exif-shutterspeedvalue' => 'Tenpo de esposission',
-'exif-aperturevalue' => 'Apertura',
-'exif-brightnessvalue' => 'Luminosità',
+'exif-shutterspeedvalue' => "Vełoçità de l'oturatore APEX",
+'exif-aperturevalue' => 'Apertura APEX',
+'exif-brightnessvalue' => 'Luminoxità APEX',
 'exif-exposurebiasvalue' => 'Coression esposission',
 'exif-maxaperturevalue' => 'Massima apertura',
 'exif-subjectdistance' => 'Distansa de el sojeto',
@@ -2858,6 +2911,7 @@ I colegamenti dopo, su la stessa riga, i xe considerai come ecession (cioè, pag
 'exif-gpsareainformation' => 'Nome de ła xòna GPS',
 'exif-gpsdatestamp' => 'Data GPS',
 'exif-gpsdifferential' => 'Corezion diferensiałe GPS',
+'exif-objectname' => 'Titoło curto',
 
 # EXIF attributes
 'exif-compression-1' => 'No conpresso',
@@ -2869,9 +2923,9 @@ I colegamenti dopo, su la stessa riga, i xe considerai come ecession (cioè, pag
 'exif-orientation-3' => 'Ruotà de 180°',
 'exif-orientation-4' => 'Roersà verticalmente',
 'exif-orientation-5' => 'Ruotà 90° in senso antiorario e roersà verticalmente',
-'exif-orientation-6' => 'Ruotà 90° in senso orario',
+'exif-orientation-6' => 'Jirare de 90° in senso antiorario',
 'exif-orientation-7' => 'Ruotà 90° in senso orario e capovolto verticalmente',
-'exif-orientation-8' => 'Ruotà 90° in senso antiorario',
+'exif-orientation-8' => 'Jirà de 90° in senso orario',
 
 'exif-planarconfiguration-1' => 'a blochi (chunky)',
 'exif-planarconfiguration-2' => 'lineare (planar)',
@@ -2946,6 +3000,8 @@ I colegamenti dopo, su la stessa riga, i xe considerai come ecession (cioè, pag
 'exif-sensingmethod-7' => 'Sensore triłineare',
 'exif-sensingmethod-8' => 'Sensor łinear cołor sequensiałe',
 
+'exif-filesource-3' => 'Fotocamara dijitałe',
+
 'exif-scenetype-1' => 'Fotografia direta',
 
 'exif-customrendered-0' => 'Processo normałe',
@@ -3065,6 +3121,17 @@ $3
 Se l\'acount *no* te o ghe rejistrà ti, verzi st\'altro cołegamento par anułar ła conferma de l\'indiriso e-mail:
 $5
 El codexe de conferma el scadrà en automatego a łe $4.',
+'confirmemail_body_set' => 'Qualcheduni, probabilmente ti steso da l\'indiriso IP $1, el ga rejistrà n\'acount "$2" con sto indiriso de posta eletronega so {{SITENAME}}.
+
+Par confermare che sto acount el xe veramente tuo e poder riativar łe funsion rełative a l\'e-mail so {{SITENAME}} verxi sto cołegamento ntel to browser:
+
+$3
+
+Se l\'acount *no* te o ghe rejistrà ti, verxi st\'altro cołegamento par anułar ła conferma de l\'indiriso de posta eletronega:
+
+$5
+
+El codexe de conferma el scadarà en automatego a łe $4.',
 'confirmemail_invalidated' => 'Richiesta de conferma indirizo e-mail anulà',
 'invalidateemail' => 'Anula richiesta de conferma e-mail',
 
@@ -3161,6 +3228,7 @@ Nota che te pol anca [[Special:EditWatchlist|modificar la lista con l'interfacia
 'version-specialpages' => 'Pagine speciali',
 'version-parserhooks' => 'Hook del parser',
 'version-variables' => 'Variabili',
+'version-skins' => 'Aspeto grafego',
 'version-other' => 'Altro',
 'version-mediahandlers' => 'Gestori de contenuti multimediài',
 'version-hooks' => 'Hook',
index 6430cd6..3958b47 100644 (file)
@@ -1249,7 +1249,7 @@ Ku tö kirjutat sen, nece nimi kävutadas, miše ozutada lehtpolen toižetajad.'
 'nchanges' => '$1 {{PLURAL:$1|toižetuz|toižetust}}',
 'recentchanges' => 'Tantoižed toižetused',
 'recentchanges-legend' => 'Tantoižiden toižetusiden järgendused',
-'recentchangestext' => 'Necil lehtpolil om tantoižid toižetusid {{SITENAME}}-saital.',
+'recentchanges-summary' => 'Necil lehtpolil om tantoižid toižetusid {{SITENAME}}-saital.',
 'recentchanges-feed-description' => "Kacelta jäl'gmäižid toižetusid wikiš neciš valus.",
 'recentchanges-label-newpage' => 'Nece redakcii sädi uden lehtpolen',
 'recentchanges-label-minor' => 'Nece redakcii om penikaine',
index 46e7b3d..2e6346e 100644 (file)
@@ -15,6 +15,7 @@
  * @author Mxn
  * @author Neoneurone
  * @author Nguyễn Thanh Quang
+ * @author Prenn
  * @author Thaisk
  * @author Thanhtai2009
  * @author Tmct
@@ -58,12 +59,14 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'Mọi_thông_báo' ),
        'Allpages'                  => array( 'Mọi_bài' ),
        'Ancientpages'              => array( 'Trang_cũ' ),
+       'Badtitle'                  => array( 'Tựa_đề_hỏng' ),
        'Blankpage'                 => array( 'Trang_trắng' ),
        'Block'                     => array( 'Cấm_IP' ),
        'Blockme'                   => array( 'Khóa_tôi', 'Khoá_tôi' ),
        'Booksources'               => array( 'Nguồn_sách' ),
        'BrokenRedirects'           => array( 'Đổi_hướng_sai' ),
        'Categories'                => array( 'Thể_loại' ),
+       'ChangeEmail'               => array( 'Đổi_thư_điện_tử' ),
        'ChangePassword'            => array( 'Đổi_mật_khẩu' ),
        'ComparePages'              => array( 'So_sánh_trang' ),
        'Confirmemail'              => array( 'Xác_nhận_thư' ),
@@ -81,11 +84,12 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'Đường_dẫn_tập_tin', 'Đường_dẫn_file' ),
        'Import'                    => array( 'Nhập' ),
        'Invalidateemail'           => array( 'Hủy_thư', 'Hủy_thư_điện_tử', 'Huỷ_thư', 'Huỷ_thư_điện_tử', 'Tắt_thư' ),
+       'JavaScriptTest'            => array( 'Thử_JavaScript' ),
        'BlockList'                 => array( 'Danh_sách_cấm' ),
        'LinkSearch'                => array( 'Tìm_liên_kết' ),
        'Listadmins'                => array( 'Danh_sách_bảo_quản_viên', 'Danh_sách_admin' ),
        'Listbots'                  => array( 'Danh_sách_bot', 'Danh_sách_robot' ),
-       'Listfiles'                 => array( 'Danh_sách_hình', 'Danh_sách_tập_tin' ),
+       'Listfiles'                 => array( 'Danh_sách_tập_tin', 'Danh_sách_hình' ),
        'Listgrouprights'           => array( 'Quyền_nhóm_người_dùng' ),
        'Listredirects'             => array( 'Trang_đổi_hướng' ),
        'Listusers'                 => array( 'Danh_sách_thành_viên' ),
@@ -978,7 +982,7 @@ sửa đổi. Việc hủy bỏ này nhằm tránh nội dung trang bị hỏng.
 Điều này thường xảy ra khi bạn sử dụng một dịch vụ proxy vô danh trên web có vấn đề.'''",
 'edit_form_incomplete' => "'''Một số phần của biểu mẫu sửa đổi không tới được máy chủ. Hãy kiểm tra rằng các sửa đổi của bạn còn nguyên và thử lại.'''",
 'editing' => 'Sửa đổi $1',
-'creating' => 'Đang tạo $1',
+'creating' => 'Tạo $1',
 'editingsection' => 'Sửa đổi $1 (đề mục)',
 'editingcomment' => 'Sửa đổi $1 (đề mục mới)',
 'editconflict' => 'Sửa đổi mâu thuẫn: $1',
@@ -1336,6 +1340,7 @@ Xin hãy bảo đảm giữ vững tính liên tục của lịch sử trang.',
 'prefs-beta' => 'Tính năng beta',
 'prefs-datetime' => 'Ngày tháng',
 'prefs-labs' => 'Tính năng phòng thí nghiệm',
+'prefs-user-pages' => 'Trang cá nhân',
 'prefs-personal' => 'Thông tin cá nhân',
 'prefs-rc' => 'Thay đổi gần đây',
 'prefs-watchlist' => 'Theo dõi',
@@ -1599,7 +1604,7 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'nchanges' => '$1 {{PLURAL:$1|thay đổi|thay đổi}}',
 'recentchanges' => 'Thay đổi gần đây',
 'recentchanges-legend' => 'Tùy chọn thay đổi gần đây',
-'recentchangestext' => 'Xem các thay đổi gần đây nhất tại wiki trên trang này.',
+'recentchanges-summary' => 'Xem các thay đổi gần đây nhất tại wiki trên trang này.',
 'recentchanges-feed-description' => 'Theo dõi các thay đổi gần đây nhất của wiki dùng nguồn tin này.',
 'recentchanges-label-newpage' => 'Bản sửa này tạo ra trang mới',
 'recentchanges-label-minor' => 'Đây là một sửa đổi nhỏ',
@@ -1805,14 +1810,15 @@ Nếu vẫn còn bị lỗi, xin hãy liên hệ với một [[Special:ListUsers
 'backend-fail-writetemp' => 'Không thể ghi vào tập tin tạm thời.',
 'backend-fail-closetemp' => 'Không thể đóng tập tin tạm thời.',
 'backend-fail-read' => 'Không thể đọc tập tin $1.',
-'backend-fail-create' => 'Không thể tạo tập tin $1.',
-'backend-fail-maxsize' => 'Không thể tạo tập tin $1 vì nó lớn hơn $2 byte.',
+'backend-fail-create' => 'Không thể ghi tập tin $1.',
+'backend-fail-maxsize' => 'Không thể ghi tập tin $1 vì nó lớn hơn $2 byte.',
 'backend-fail-readonly' => 'Phía sau lưu trữ “$1” đang ở chế độ chỉ-đọc. Lý do đưa ra là: “$2”',
 'backend-fail-synced' => 'Tập tin “$1” đang có trạng thái không nhất quán đối với các phía sau lưu trữ nội bộ',
 'backend-fail-connect' => 'Không thể kết nối đến phía sau lưu trữ “$1”.',
 'backend-fail-internal' => 'Lỗi không rõ xuất hiện trong phía sau lưu trữ “$1”.',
 'backend-fail-contenttype' => 'Không thể xác định kiểu nội dung của tập tin để lưu giữ tại “$1”.',
 'backend-fail-batchsize' => 'Phía sau lưu trữ đã nhận một loạt $1 thao tác tập tin; mức hạn là $2 thao tác.',
+'backend-fail-usable' => 'Không thể ghi tập tin $1 vì không có đủ quyền hoặc những thư mục hay nơi đựng bị thiếu.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Không thể kết nối với cơ sở dữ liệu nhật ký của phía sau lưu trữ “$1”.',
@@ -1875,7 +1881,6 @@ Vì lý do bảo mật, img_auth.php đã bị tắt.',
 'http-curl-error' => 'Có lỗi khi truy xuất URL: $1',
 'http-host-unreachable' => 'Không thể truy cập URL',
 'http-bad-status' => 'Có vấn đề khi yêu cầu HTTP: $1 $2',
-'http-truncated-body' => 'Chỉ nhận được một phần của thân yêu cầu.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Không thể truy cập URL',
@@ -3276,7 +3281,7 @@ Những thông tin khác mặc định sẽ được ẩn đi.
 'exif-scenetype' => 'Loại cảnh',
 'exif-customrendered' => 'Sửa hình thủ công',
 'exif-exposuremode' => 'Chế độ phơi sáng',
-'exif-whitebalance' => 'Độ sáng trắng',
+'exif-whitebalance' => 'Cân bằng trắng',
 'exif-digitalzoomratio' => 'Tỷ lệ phóng lớn kỹ thuật số',
 'exif-focallengthin35mmfilm' => 'Tiêu cự trong phim 35 mm',
 'exif-scenecapturetype' => 'Kiểu chụp cảnh',
index 76df447..d382711 100644 (file)
@@ -1190,7 +1190,7 @@ Dalol i dälön votikanes kosikön ko ol yufü gebana- u bespikapad olik nes sä
 'nchanges' => '{{PLURAL:$1|votükam|votükams}} $1',
 'recentchanges' => 'Votükams nulik',
 'recentchanges-legend' => 'Votükams nulik: paramets',
-'recentchangestext' => 'Su pad at binons votükams nulikün in vüki at.',
+'recentchanges-summary' => 'Su pad at binons votükams nulikün in vüki at.',
 'recentchanges-feed-description' => 'Getön votükamis nulikün in vük at me nünakanad at.',
 'recentchanges-label-newpage' => 'Redakam at päjafon pad nulik',
 'recentchanges-label-minor' => 'Atos binon redakam pülik',
index 11d3087..df09c18 100644 (file)
@@ -960,7 +960,7 @@ Taa tohe-i ollaq rohkõmb ku $1 {{PLURAL:$1|märk|märki}}.",
 'nchanges' => '$1 {{PLURAL:$1|muutminõ|muutmiisi}}',
 'recentchanges' => 'Viimädseq muutmisõq',
 'recentchanges-legend' => 'Viimätside muutmiisi säädmine',
-'recentchangestext' => 'Kaeq seo lehe päält viimätsit muutmiisi.',
+'recentchanges-summary' => 'Kaeq seo lehe päält viimätsit muutmiisi.',
 'recentchanges-feed-description' => 'Kaeq seo lehe pääl {{SITENAME}} viimätsit muutmiisi.',
 'rcnote' => 'Tan ommaq {{PLURAL:$1|üts muutus|$1 viimäst muutmist}}, miä ommaq tettüq {{PLURAL:$2|üte viimädse päävä|$2 viimädse päävä}} seen (kuupääväst $5, $4 lugõma naatõn).',
 'rcnotefrom' => "Tan ommaq muutmisõq kuupääväst '''$2''' pääle (näüdätäs kooniq '''$1''' muutmist).",
@@ -2167,7 +2167,7 @@ Kokkovõttõria pääle või kirotaq tagasivõtmisõ põhjusõ.',
 'scarytranscludetoolong' => "[Võrgoaadrõs om pall'o pikk]",
 
 # Delete conflict
-'deletedwhileediting' => "<center>'''Hoiatus''': taa leht om ärq kistutõt päält tuud, ku sa taad toimõndama naksit!</center>",
+'deletedwhileediting' => "'''Hoiatus''': taa leht om ärq kistutõt päält tuud, ku sa taad toimõndama naksit!",
 'confirmrecreate' => "Pruukja '''[[User:$1|$1]]''' ([[User talk:$1|arotus]]) kistut' taa lehe ärq päält tuud, ku sa naksit taad toimõndama. Põhjus oll':
 : ''$2''
 Olõq hää, kinnüdäq, et tahat taad lehte vahtsõst luvvaq.",
index 1afb5c9..acd1dcb 100644 (file)
@@ -21,10 +21,10 @@ $namespaceNames = array(
        NS_USER             => 'Gumaramit',
        NS_USER_TALK        => 'Hiruhimangaw_hiton_gumaramit',
        NS_PROJECT_TALK     => 'Hiruhimangraw_hiton_$1',
-       NS_FILE             => 'Fayl',
-       NS_FILE_TALK        => 'Hiruhimangraw_hiton_fayl',
-       NS_MEDIAWIKI        => 'MediaWiki',
-       NS_MEDIAWIKI_TALK   => 'Hiruhimangraw_hiton_MediaWiki',
+       NS_FILE             => 'Paypay',
+       NS_FILE_TALK        => 'Hiruhimangraw_hiton_paypay',
+       NS_MEDIAWIKI        => 'MedyaWiki',
+       NS_MEDIAWIKI_TALK   => 'Hiruhimangraw_hiton_MedyaWiki',
        NS_TEMPLATE         => 'Batakan',
        NS_TEMPLATE_TALK    => 'Hiruhimangraw_hiton_batakan',
        NS_HELP             => 'Bulig',
@@ -33,6 +33,12 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'Hiruhimangraw_hiton_kaarangay',
 );
 
+$namespaceAliases = array(
+       'Fayl'                          => NS_FILE,
+       'Hiruhimangraw_hiton_fayl'      => NS_FILE_TALK,
+       'Hiruhimangraw_hiton_MediaWiki' => NS_MEDIAWIKI_TALK,
+);
+
 $specialPageAliases = array(
        'Allpages'                  => array( 'NgatananngaPakli' ),
        'Categories'                => array( 'Mga_kaarangay' ),
@@ -798,7 +804,7 @@ An imo e-mail address in diri makikit-an kun an iba nga mga gumaramit in makonta
 'nchanges' => '$1 {{PLURAL:$1|pagbag-o|mga pagbabag-o}}',
 'recentchanges' => 'Mga kabag-ohan',
 'recentchanges-legend' => 'Mga pirilion han mga lab-as nga pagbag-o',
-'recentchangestext' => 'Nasubay han pinakalab-as nga pagbag-o ha wiki dinhi nga pakli.',
+'recentchanges-summary' => 'Nasubay han pinakalab-as nga pagbag-o ha wiki dinhi nga pakli.',
 'recentchanges-feed-description' => 'Panultol han pinakalab-as nga pagbabag-o ha wiki dinhi nga panubong.',
 'recentchanges-label-newpage' => 'Ini nga pagliwat hin naghimo hin bag-o nga pakli',
 'recentchanges-label-minor' => 'Gutiay ini nga pagliwat',
index 5a6f244..13c5a11 100644 (file)
@@ -1175,7 +1175,7 @@ Jéemala bindaale ''all'' ngir seet ci biir ëmbit gépp (boolewaale ci xëti wa
 'nchanges' => '$1 {{PLURAL:$1|coppite|ciy coppite}}',
 'recentchanges' => 'Coppite yu mujj',
 'recentchanges-legend' => 'tànneefi coppite yu mujj',
-'recentchangestext' => 'Toppal ci wii xët coppite yu mujj ci {{SITENAME}}.',
+'recentchanges-summary' => 'Toppal ci wii xët coppite yu mujj ci {{SITENAME}}.',
 'recentchanges-feed-description' => 'Toppal coppite yu mujj yu bii wiki.',
 'recentchanges-label-newpage' => 'Coppite gi sos na xët wu bees',
 'recentchanges-label-minor' => 'Coppite gu néewal la',
index b6c9a70..a9d7dd5 100644 (file)
@@ -1013,7 +1013,7 @@ $1",
 'nchanges' => '$1趟更改',
 'recentchanges' => '近段辰光个改动',
 'recentchanges-legend' => '近段辰光个改动选项',
-'recentchangestext' => '登该个页面浪跟踪最近对维基百科个改动。',
+'recentchanges-summary' => '登该个页面浪跟踪最近对维基百科个改动。',
 'recentchanges-feed-description' => '跟踪此订阅垃拉 wiki 高头个最近更改。',
 'rcnote' => "下底是垃拉$4 $5,最近'''$2'''日天里向个'''$1'''趟最近更改记录:",
 'rclistfrom' => '显示 $1 以来个新改动',
index b85c6a7..2aea831 100644 (file)
@@ -725,7 +725,7 @@ $1',
 'nchanges' => '$1 {{PLURAL:$1|сольлһн|сольлһн}}',
 'recentchanges' => 'Шидрә сольлһн',
 'recentchanges-legend' => 'Шидрә сольлһна көгүд',
-'recentchangestext' => 'Эн цагин дараһар бичсн шидрә сольлһн',
+'recentchanges-summary' => 'Эн цагин дараһар бичсн шидрә сольлһн',
 'recentchanges-feed-description' => 'Эн зәңгллһд шидрә хүврһд шинҗлх.',
 'recentchanges-label-newpage' => 'Тер үүләр шин халх бүтәв',
 'recentchanges-label-minor' => 'Эн баһ чинртә сольлһн',
index 69eb238..d487e43 100644 (file)
@@ -471,7 +471,7 @@ $messages = array(
 'nchanges' => '$1 {{PLURAL:$1|თირაფა|თირაფეფ}}',
 'recentchanges' => 'ასეიანი თირაფეფი',
 'recentchanges-legend' => 'ასერდენ თირაფეფიშ ოფციეფ',
-'recentchangestext' => 'თე ხასჷლას ქაძირი ვიკიშა მიშაღალირ არძოშ უახალაშ თირაფეფი.',
+'recentchanges-summary' => 'თე ხასჷლას ქაძირი ვიკიშა მიშაღალირ არძოშ უახალაშ თირაფეფი.',
 'recentchanges-feed-description' => "ვიკიშ უახალაშ თირაფეფიშა თოლყ'უჯიშ მეყ'უნაფა თე არხის",
 'recentchanges-label-newpage' => 'ათე რედაქტირაფას მაჸუნ ახალ ხასჷლაშ დორსხუაფაქ.',
 'recentchanges-label-minor' => 'თენა რე ციქა რედაქტირაფა',
index 35f4196..96d6be2 100644 (file)
@@ -67,10 +67,12 @@ $specialPageAliases = array(
        'BrokenRedirects'           => array( 'צעבראכענע_ווייטערפירונגען' ),
        'Categories'                => array( 'קאטעגאריעס' ),
        'ChangePassword'            => array( 'ענדערן_פאסווארט' ),
+       'ComparePages'              => array( 'פארגלייהן_בלעטער' ),
        'Confirmemail'              => array( 'באשטעטיגן_ע-פאסט' ),
        'Contributions'             => array( 'בײַשטײַערונגען' ),
        'CreateAccount'             => array( 'שאפֿן_קאנטע' ),
        'Deadendpages'              => array( 'בלעטער_אן_פארבינדונגען' ),
+       'DeletedContributions'      => array( 'אויסגעמעקעטע_בײַשטײַערונגען' ),
        'Disambiguations'           => array( 'באדייטן' ),
        'DoubleRedirects'           => array( 'פארטאפלטע_ווייטערפירונגען' ),
        'Emailuser'                 => array( 'שיקן_אן_ע-פאסט_צום_באניצער' ),
@@ -83,6 +85,7 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'בילדער' ),
        'Listredirects'             => array( 'ווייטערפירונגען' ),
        'Listusers'                 => array( 'ליסטע_פון_באניצערס' ),
+       'Lockdb'                    => array( 'פארשליסן_דאטנבאזע' ),
        'Log'                       => array( 'לאגביכער' ),
        'Lonelypages'               => array( 'פאר\'יתומ\'טע_בלעטער' ),
        'Longpages'                 => array( 'לאנגע_בלעטער' ),
@@ -114,6 +117,7 @@ $specialPageAliases = array(
        'Specialpages'              => array( 'באזונדערע_בלעטער' ),
        'Statistics'                => array( 'סטאטיסטיק' ),
        'Tags'                      => array( 'טאגן' ),
+       'Unblock'                   => array( 'אויפבלאקירן' ),
        'Uncategorizedcategories'   => array( 'קאטעגאריעס_אן_קאטעגאריעס' ),
        'Uncategorizedimages'       => array( 'בילדער_אן_קאטעגאריעס' ),
        'Uncategorizedpages'        => array( 'בלעטער_אן_קאטעגאריעס' ),
@@ -169,6 +173,7 @@ $magicWords = array(
        'raw'                     => array( '0', 'רוי:', 'ללא עיבוד:', 'RAW:' ),
        'displaytitle'            => array( '1', 'ווייזן_קעפל', 'כותרת תצוגה', 'DISPLAYTITLE' ),
        'language'                => array( '0', '#שפראך:', '#שפה:', '#LANGUAGE:' ),
+       'special'                 => array( '0', 'באזונדער', 'מיוחד', 'special' ),
        'defaultsort'             => array( '1', 'גרונטסארטיר:', 'מיון רגיל:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'hiddencat'               => array( '1', '__באהאלטענע_קאטעגאריע__', '__באהאלטענע_קאט__', '__קטגוריה_מוסתרת__', '__HIDDENCAT__' ),
        'pagesize'                => array( '1', 'בלאטגרייס', 'גודל דף', 'PAGESIZE' ),
@@ -1137,6 +1142,8 @@ $1",
 
 # Diffs
 'history-title' => 'רעוויזיע היסטאריע פֿון $1',
+'difference-title' => 'אונטערשייד צווישן ווערסיעס פון "$1"',
+'difference-title-multipage' => 'אונטערשייד צווישן בלעטער "$1" און "$2"',
 'difference-multipage' => '(אונטערשייד צווישן בלעטער)',
 'lineno' => 'שורה $1:',
 'compareselectedversions' => 'פארגלייך סעלעקטירטע ווערסיעס',
@@ -1399,8 +1406,10 @@ $1",
 'right-reupload' => 'איבערשרײַבן עקסיסטירנדע טעקע',
 'right-reupload-own' => "איבערשרײַבן עקזיסטירנדע טעקעס וואָס מ'האט אַליין אַרויפֿגעלאָדן",
 'right-upload_by_url' => 'ארויפֿלאָדן טעקעס פֿון אַ URL',
+'right-purge' => 'ליידיקן דעם זייטל־זאפאס פאר א בלאט אן באשטעטיקונג',
 'right-autoconfirmed' => 'רעדאקטירן האלב-געשיצטע בלעטער',
 'right-bot' => 'באַהאַנדלונג ווי אַן אויטאמאַטישער פראצעס',
+'right-nominornewtalk' => 'מינערדיקע רעדאקטירונגען צו שמועס בלעטער זאלן נישט שאפן די "נייע מודעות" מעלדונג',
 'right-writeapi' => 'ניצן דעם שרײַבן API',
 'right-delete' => 'מעקן בלעטער',
 'right-bigdelete' => 'אויסמעקן בלעטער מיט לאַנגע היסטאריעס',
@@ -1483,7 +1492,7 @@ $1",
 'nchanges' => '{{PLURAL:$1|ענדערונג|$1 ענדערונגען}}',
 'recentchanges' => 'לעצטע ענדערונגען',
 'recentchanges-legend' => 'ברירות פאר לעצטע ענדערונגען',
-'recentchangestext' => 'גיי נאך די לעצטע ענדערונגען צו דער וויקי אויף דעם בלאט.',
+'recentchanges-summary' => 'גיי נאך די לעצטע ענדערונגען צו דער וויקי אויף דעם בלאט.',
 'recentchanges-feed-description' => 'גייט נאך די לעצטע ענדערונגען צו דער וויקי אין דעם בלאט.',
 'recentchanges-label-newpage' => 'די רעדאַקטירונג האט באשאפֿן א נײַעם בלאַט',
 'recentchanges-label-minor' => 'דאָס איז אַ מינערדיקע רעדאַקטירונג',
@@ -1535,6 +1544,9 @@ $1",
 'uploadnologintext' => 'איר מוזט זײַן [[Special:UserLogin| אַרײַנלאָָגירט]] כדי ארויפֿצולאָדן טעקעס',
 'upload_directory_read_only' => 'דער וועבסארווער קען נישט שרייבן צום ארויפלאדן ארכיוו "$1".',
 'uploaderror' => 'אַרויפֿלאָדן פֿעלער',
+'upload-recreate-warning' => "'''ווארענונג: א טעקע מיט דעם נאמען איז געווארן אויסגעמעקט אדער באוועגט.'''
+
+דאס אויסמעקן־ און באוועגן־לאגבוך פאר דעם בלאט זענען געוויזן דא:",
 'uploadtext' => "באניצט דעם פֿארעם אַרויפֿצולאָדן טעקעס.
 כדי צו זען אדער זוכן טעקעס וואס זענען שוין אַרויפֿגעלאָדן ווענדט זיך צו דער [[Special:FileList|ליסטע פֿון אַרויפֿגעלאָדענע טעקעס]]; (ווידער)אַרויפֿלאָדונגען ווערן אויך לאגירט אינעם  [[Special:Log/upload| אַרויפֿלאָדן לאג-בוך]], אויסמעקונגען אינעם [[Special:Log/delete|אויסמעקן לאג-בוך]].
 
@@ -1563,6 +1575,8 @@ $1",
 ביטע גיט דער טעקע א נײַעם נאמען און פּרובירט ארויפֿלאָדן נאכאַמאָל.',
 'filename-toolong' => 'טעקע נעמען קען נישט זײַן לענגער ווי 240 בייטן.',
 'badfilename' => 'טעקע נאמען איז געטוישט צו "$1".',
+'filetype-mime-mismatch' => 'טעקע סופֿיקס ".$1" שטימט נישט מיטן MIME טיפ פון דער טעקע($2).',
+'filetype-badmime' => 'טעקעס מיטן  MIME טיפ "$1" טאר מען נישט ארויפלאדן.',
 'filetype-missing' => 'די טעקע האט נישט קיין פארברייטערונג (למשל ".jpg").',
 'empty-file' => 'די טעקע וואָס איר האט אײַנגעגעבן איז ליידיג.',
 'file-too-large' => 'די טעקע וואָס איר האט אײַנגעגעבן איז צו גרויס.',
@@ -1629,6 +1643,7 @@ $1",
 'upload-http-error' => 'א HTTP גרײַז האט פאַסירט: $1',
 
 # File backend
+'backend-fail-stream' => 'קען נישט מאכן שטראמען טעקע $1.',
 'backend-fail-notexists' => 'נישט פֿאראן די טעקע $1.',
 'backend-fail-invalidpath' => '$1 איז נישט קיין גילטיקער שפייכלערן שטעג.',
 'backend-fail-delete' => 'קען נישט אויסמעקן טעקע $1.',
@@ -1661,6 +1676,7 @@ $1",
 
 # HTTP errors
 'http-invalid-url' => 'אומגילטיג URL: $1',
+'http-invalid-scheme' => 'URL אדרעסן מיט דער "$1" סכעמע ווערן נישט געשטיצט.',
 'http-request-error' => 'HTTP בקשה דורכגעפאלן צוליב אומבאוואוסטער פעלער.',
 'http-read-error' => 'HTTP לייענען גרײַז.',
 'http-timed-out' => 'HTTP בקשה אויסגעגאַנגען.',
@@ -1927,6 +1943,7 @@ $1",
 
 # SpecialCachedPage
 'cachedspecial-viewing-cached-ttl' => 'איר באקוקט א ווערסיע פון דעם בלאט פונעם זאפאס, וואס קען אבער זיין  פֿארעלטערט ביז $1.',
+'cachedspecial-refresh-now' => 'באקוקן די לעצטע.',
 
 # Special:Categories
 'categories' => 'קאַטעגאָריעס',
@@ -3067,6 +3084,10 @@ $1',
 'exif-gpslongitude-e' => 'מזרח לענג',
 'exif-gpslongitude-w' => 'מערב לענג',
 
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|ngמעטער|מעטער}} איבערן ים־שפיגלl',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|מעטער|מעטער}} אונטערן ים־שפיגל',
+
 # Pseudotags used for GPSSpeedRef
 'exif-gpsspeed-k' => 'ק"מ אין א שעה',
 'exif-gpsspeed-m' => 'מייל פער שעה',
@@ -3311,6 +3332,7 @@ $5
 'version-software' => 'אינסטאַלירט ווייכוואַרג',
 'version-software-product' => 'פראדוקט',
 'version-software-version' => 'ווערסיע',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'טעקע שטעג',
index f3a674c..fd7229a 100644 (file)
@@ -1363,7 +1363,7 @@ Tí ẹ bá fisílẹ̀ a ó lòó láti tóka iṣẹ́ yín fún yín.',
 'nchanges' => '{{PLURAL:$1|àtúnṣe|àwọn àtúnṣe}} $1',
 'recentchanges' => 'Àwọn àtúnṣe tuntun',
 'recentchanges-legend' => 'Àwọn àṣàyàn fún àtúnṣe tuntun',
-'recentchangestext' => 'Ẹ tẹ̀ lé àwọn àtúnṣe tuntun sí wiki lórí ojúewé yìí.',
+'recentchanges-summary' => 'Ẹ tẹ̀ lé àwọn àtúnṣe tuntun sí wiki lórí ojúewé yìí.',
 'recentchanges-feed-description' => 'Ẹ tẹ̀ lé àwọn àtúnṣe àìpẹ́ ọjọ́ sí wiki nínú àkótán feed yìí.',
 'recentchanges-label-newpage' => 'Àtúnṣe yìí dá ojúewé tuntun',
 'recentchanges-label-minor' => 'Àtùnṣe kékeré nìyí',
@@ -1564,7 +1564,7 @@ Tí ìṣòro náà ò bá jáwọ́, ẹ bẹ [[Special:ListUsers/sysop|olùmó
 'backend-fail-writetemp' => 'Kò le kọ sínú fáìlì onígbàdíẹ̀.',
 'backend-fail-closetemp' => 'Kò le de fáìlì onígbàdíẹ̀.',
 'backend-fail-read' => 'Kò le ka fáìlì "$1".',
-'backend-fail-create' => 'Kò le dá fáìlì "$1".',
+'backend-fail-create' => 'Kò le kọ fáìlì $1.',
 
 # Lock manager
 'lockmanager-notlocked' => 'Kò le sí àgádágodo "$1" sílẹ̀; kò jẹ́ dídè.',
index 2eb7a06..ea1a0a6 100644 (file)
@@ -1446,7 +1446,7 @@ $1",
 'nchanges' => '$1次更改',
 'recentchanges' => '最近更改',
 'recentchanges-legend' => '最近更改選項',
-'recentchangestext' => '追蹤對哩一個 wiki 嘅最後更改。',
+'recentchanges-summary' => '追蹤對哩一個 wiki 嘅最後更改。',
 'recentchanges-feed-description' => '追蹤對哩一個 wiki 度呢個集合嘅最後更改。',
 'recentchanges-label-newpage' => '呢次編輯開咗一個新版',
 'recentchanges-label-minor' => '呢個係一個細編輯',
index 6fde574..a326277 100644 (file)
@@ -960,7 +960,7 @@ Een nie anekruusd vienkvakje beteêken da de gebruker hin lid is van de hroep.",
 'nchanges' => '$1 {{PLURAL:$1|bewerkieng|bewerkiengen}}',
 'recentchanges' => 'Juust angepast',
 'recentchanges-legend' => 'Opties vò juust angepast',
-'recentchangestext' => 'Bekiek wat-a juust veranderd is op deêze wiki.',
+'recentchanges-summary' => 'Bekiek wat-a juust veranderd is op deêze wiki.',
 'recentchanges-feed-description' => 'Bekiek wat-a juust veranderd is op deêze wiki.',
 'recentchanges-label-newpage' => "Mei deêze bewarkienge is 'n nuwe pagina angemaekt",
 'recentchanges-label-minor' => 'Dit is een kleine wieziging',
index 3572e30..6e6ad18 100644 (file)
@@ -173,21 +173,8 @@ $specialPageAliases = array(
 );
 
 $messages = array(
-# User preference toggles
-'tog-norollbackdiff' => '進行回退後略過差異比較',
-
-'newpage' => '最新页面',
-
-# Edit pages
-'editing' => '正在编辑 $1',
-
-# Miscellaneous special pages
-'newpages' => '最新页面',
-
 /*
 Short names for language variants used for language conversion links.
-To disable showing a particular link, set it to 'disable', e.g.
-'variantname-zh-sg' => 'disable',
 Variants for Chinese language
 */
 'variantname-zh-hans' => '简体',
index 9f918b2..64ce7c4 100644 (file)
@@ -111,6 +111,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( '所有信息' ),
        'Allpages'                  => array( '所有页面' ),
        'Ancientpages'              => array( '最早页面' ),
+       'Badtitle'                  => array( '无效标题' ),
        'Blankpage'                 => array( '空白页面' ),
        'Block'                     => array( '封禁用户' ),
        'Blockme'                   => array( '自我封禁' ),
@@ -135,6 +136,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( '文件路径' ),
        'Import'                    => array( '导入页面' ),
        'Invalidateemail'           => array( '无效电邮地址' ),
+       'JavaScriptTest'            => array( 'JavaScript测试' ),
        'BlockList'                 => array( '封禁列表' ),
        'LinkSearch'                => array( '搜索网页链接' ),
        'Listadmins'                => array( '管理员列表' ),
@@ -159,7 +161,7 @@ $specialPageAliases = array(
        'Mycontributions'           => array( '我的贡献' ),
        'Mypage'                    => array( '我的用户页' ),
        'Mytalk'                    => array( '我的讨论页' ),
-       'Myuploads'                 => array( '我上传的文件', '我的上传' ),
+       'Myuploads'                 => array( '我上传的文件' ),
        'Newimages'                 => array( '新建文件' ),
        'Newpages'                  => array( '新建页面' ),
        'PasswordReset'             => array( '重设密码' ),
@@ -173,7 +175,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( '随机重定向页' ),
        'Recentchanges'             => array( '最近更改' ),
        'Recentchangeslinked'       => array( '链出更改' ),
-       'Revisiondelete'            => array( '删除或恢复版本' ),
+       'Revisiondelete'            => array( '删除或恢复修订' ),
        'RevisionMove'              => array( '修订版本移动' ),
        'Search'                    => array( '搜索' ),
        'Shortpages'                => array( '短页面' ),
@@ -203,7 +205,7 @@ $specialPageAliases = array(
        'Wantedtemplates'           => array( '需要的模板' ),
        'Watchlist'                 => array( '监视列表' ),
        'Whatlinkshere'             => array( '链入页面' ),
-       'Withoutinterwiki'          => array( '无跨Wiki链接的页面', '无跨维基链接页面' ),
+       'Withoutinterwiki'          => array( '无跨维基链接页面' ),
 );
 
 $magicWords = array(
@@ -220,6 +222,7 @@ $magicWords = array(
        'currentday'              => array( '1', '今天', 'CURRENTDAY' ),
        'currentday2'             => array( '1', '今天2', 'CURRENTDAY2' ),
        'currentyear'             => array( '1', '今年', 'CURRENTYEAR' ),
+       'currenttime'             => array( '1', '此时', '当前时间', 'CURRENTTIME' ),
        'numberofpages'           => array( '1', '页数', 'NUMBEROFPAGES' ),
        'numberofarticles'        => array( '1', '条目数', 'NUMBEROFARTICLES' ),
        'numberoffiles'           => array( '1', '文件数', 'NUMBEROFFILES' ),
@@ -228,6 +231,11 @@ $magicWords = array(
        'numberofedits'           => array( '1', '编辑数', 'NUMBEROFEDITS' ),
        'numberofviews'           => array( '1', '访问数', 'NUMBEROFVIEWS' ),
        'pagename'                => array( '1', '页名', 'PAGENAME' ),
+       'fullpagename'            => array( '1', '全页名', 'FULLPAGENAME' ),
+       'newsectionlink'          => array( '1', '_新段落链接_', '__NEWSECTIONLINK__' ),
+       'nonewsectionlink'        => array( '1', '_无新段落链接_', '__NONEWSECTIONLINK__' ),
+       'language'                => array( '0', '#语言:', '#LANGUAGE:' ),
+       'pagesize'                => array( '1', '页面大小', 'PAGESIZE' ),
 );
 
 $linkTrail = '/^()(.*)$/sD';
@@ -984,6 +992,9 @@ $2
 'node-count-exceeded-category' => '页面的节点数超出限制',
 'node-count-exceeded-warning' => '页面超出了节点数',
 'expansion-depth-exceeded-category' => '扩展深度超出限制的页面',
+'expansion-depth-exceeded-warning' => '页面超过了扩展深度',
+'parser-unstrip-loop-warning' => '检测到回圈',
+'parser-unstrip-recursion-limit' => '递归超过限制 ($1)',
 
 # "Undo" feature
 'undo-success' => '此编辑可以被撤销。请检查以下比较以核实这正是您想做的,然后保存以下更改完成撤销编辑。',
@@ -1074,7 +1085,7 @@ $3的理由是''$2''",
 'revdelete-hide-comment' => '隐藏编辑摘要',
 'revdelete-hide-user' => '隐藏编辑者的用户名/IP地址',
 'revdelete-hide-restricted' => '同时阻止管理员与其他用户查看数据',
-'revdelete-radio-same' => '(勿更改)',
+'revdelete-radio-same' => '(不要更改)',
 'revdelete-radio-set' => '是',
 'revdelete-radio-unset' => '否',
 'revdelete-suppress' => '同时阻止管理员与其他用户查看数据',
@@ -1141,7 +1152,9 @@ $1",
 'mergelogpagetext' => '以下是一个最近由一个页面的修订历史合并到另一个页面的列表。',
 
 # Diffs
-'history-title' => '“$1”的版本历史',
+'history-title' => '$1:版本历史',
+'difference-title' => '$1:修订版本之间的差异',
+'difference-title-multipage' => '页面“$1”与“$2”之间的差异',
 'difference-multipage' => '(页面间的差异)',
 'lineno' => '第$1行:',
 'compareselectedversions' => '对比选择的版本',
@@ -1236,6 +1249,7 @@ $1",
 'prefs-beta' => '测试版特色',
 'prefs-datetime' => '日期和时间',
 'prefs-labs' => '实验室特色',
+'prefs-user-pages' => '用户页面',
 'prefs-personal' => '用户资料',
 'prefs-rc' => '最近更改',
 'prefs-watchlist' => '监视列表',
@@ -1495,7 +1509,7 @@ $1",
 'nchanges' => '$1次更改',
 'recentchanges' => '最近更改',
 'recentchanges-legend' => '最近更改选项',
-'recentchangestext' => '本页面跟踪本wiki的最近更改。',
+'recentchanges-summary' => '跟踪这个wiki上的最新更改。',
 'recentchanges-feed-description' => '跟踪订阅本wiki的最近更改。',
 'recentchanges-label-newpage' => '这次编辑建立了一个新页面',
 'recentchanges-label-minor' => '这是一个小编辑',
@@ -1681,8 +1695,8 @@ $1',
 'backend-fail-writetemp' => '无法写临时文件。',
 'backend-fail-closetemp' => '无法创建临时文件。',
 'backend-fail-read' => '找不到文件“$1”。',
-'backend-fail-create' => 'æ\89¾ä¸\8då\88°æ\96\87件â\80\9c$1â\80\9d。',
-'backend-fail-maxsize' => 'æ\97 æ³\95å\88\9b建文件 $1,因为它大于$2字节。',
+'backend-fail-create' => 'æ\97 æ³\95å\86\99å\85¥æ\96\87件 $1 。',
+'backend-fail-maxsize' => 'æ\97 æ³\95å\86\99å\85¥文件 $1,因为它大于$2字节。',
 'backend-fail-readonly' => '“$1”存储后端目前在只读模式,因为:“$2”',
 'backend-fail-synced' => '文件"$1"在内部存储后端之中处于不一致状态',
 'backend-fail-connect' => '无法连接到存储后端“$1。',
@@ -1748,7 +1762,6 @@ $1',
 'http-curl-error' => '撷取URL时出错:$1',
 'http-host-unreachable' => '无法到达URL。',
 'http-bad-status' => '进行HTTP请求时出现问题:$1 $2',
-'http-truncated-body' => '只收到部分请求的正文。',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => '无法访问URL',
@@ -2094,9 +2107,9 @@ $1',
 'emailuser' => '电邮联系',
 'emailpage' => '电邮联系',
 'emailpagetext' => '您可以用下面的表格去寄一封电邮给这位用户。
-您在[[Special:Preferences|您参数设置]]中所输入的电子邮箱地址将出现在邮件"发件人"一栏中,这样该用户就可以回复您。',
+您在[[Special:Preferences|您的参数设置]]中所输入的电子邮箱地址将出现在邮件“发件人”一栏中,这样该用户就可以回复您。',
 'usermailererror' => 'Mail 对象返回错误:',
-'defemailsubject' => "{{SITENAME}} 来自用户''$1''的电子邮件",
+'defemailsubject' => '{{SITENAME}}来自用户“$1”的电子邮件',
 'usermaildisabled' => '用户电邮已停用',
 'usermaildisabledtext' => '您不可以发送电邮到这个wiki上的其他用户',
 'noemailtitle' => '无电子邮件地址',
index 2ccf3fc..ca06fb4 100644 (file)
@@ -594,6 +594,8 @@ $2',
 'titleprotected' => "這個標題已經被[[User:$1|$1]]保護以防止建立。理由是''$2''。",
 'filereadonlyerror' => '無法修改文件" $1 "因為文件庫" $2 "處於唯讀模式。 !
 管理員鎖定它的解釋是:" $3 "。',
+'invalidtitle-knownnamespace' => '使用名字空間“$2”和文本“$3”的無效標題',
+'invalidtitle-unknownnamespace' => '使用未知名字空間編號$1和文本“$2”的無效標題',
 
 # Virus scanner
 'virus-badscanner' => "損壞設定: 未知的病毒掃瞄器: ''$1''",
@@ -969,6 +971,8 @@ $2
 'node-count-exceeded-warning' => '頁面超出節點數',
 'expansion-depth-exceeded-category' => '擴展深度超出限制的頁面',
 'expansion-depth-exceeded-warning' => '頁面超出擴展深度',
+'parser-unstrip-loop-warning' => '檢測到迴圈',
+'parser-unstrip-recursion-limit' => '遞歸超過限制 ($1)',
 
 # "Undo" feature
 'undo-success' => '該編輯可以被撤銷。請檢查以下對比以核實這正是您想做的,然後儲存以下更改以完成撤銷編輯。',
@@ -1060,7 +1064,7 @@ $2
 'revdelete-hide-comment' => '隱藏編輯摘要',
 'revdelete-hide-user' => '隱藏編輯者的用戶名/IP地址',
 'revdelete-hide-restricted' => '同時廢止由操作員以及其他用戶的資料',
-'revdelete-radio-same' => '(勿更改)',
+'revdelete-radio-same' => '(不要更改)',
 'revdelete-radio-set' => '是',
 'revdelete-radio-unset' => '否',
 'revdelete-suppress' => '同時廢止由操作員以及其他用戶的資料',
@@ -1127,7 +1131,9 @@ $1",
 'mergelogpagetext' => '以下是一個最近由一個頁面的修訂歷史合併到另一個頁面的列表。',
 
 # Diffs
-'history-title' => '「$1」的修訂歷史',
+'history-title' => '$1:修訂歷史',
+'difference-title' => '$1:修訂版本之間的差異',
+'difference-title-multipage' => '"$1"和"$2": 頁面之間的差異',
 'difference-multipage' => '(頁面間的差異)',
 'lineno' => '第$1行:',
 'compareselectedversions' => '比較選定的修訂版本',
@@ -1222,6 +1228,7 @@ $1",
 'prefs-beta' => 'Beta 特性',
 'prefs-datetime' => '日期和時間',
 'prefs-labs' => '實驗中的功能',
+'prefs-user-pages' => '用戶頁面',
 'prefs-personal' => '用戶資料',
 'prefs-rc' => '最近更改',
 'prefs-watchlist' => '監視列表',
@@ -1483,7 +1490,7 @@ $1",
 'nchanges' => '$1次更改',
 'recentchanges' => '近期變動',
 'recentchanges-legend' => '最近更改選項',
-'recentchangestext' => '跟蹤這個wiki上的最新更改。',
+'recentchanges-summary' => '跟蹤這個wiki上的最新更改。',
 'recentchanges-feed-description' => '追蹤此訂閱在 wiki 上的最近更改。',
 'recentchanges-label-newpage' => '這次編輯建立了一個新頁面',
 'recentchanges-label-minor' => '這是一個小編輯',
@@ -1668,14 +1675,15 @@ $1',
 'backend-fail-writetemp' => '無法寫臨時文件。',
 'backend-fail-closetemp' => '無法創建臨時文件。',
 'backend-fail-read' => '找不到文件“$1”。',
-'backend-fail-create' => '找不到「$1」檔案。',
-'backend-fail-maxsize' => 'ç\84¡æ³\95å\89µå»º檔𣗈$1​​,因為它大於$2字節。',
+'backend-fail-create' => '無法寫入檔案  $1。',
+'backend-fail-maxsize' => 'ç\84¡æ³\95寫å\85¥檔𣗈$1​​,因為它大於$2字節。',
 'backend-fail-readonly' => '「$1」儲存後端目前是唯讀模式,因為:「$2」',
 'backend-fail-synced' => '文件"$1"在內部存儲後端是不一致的區域。',
 'backend-fail-connect' => '無法連結至存儲後方“$1”。',
 'backend-fail-internal' => '存儲後方“$1”發生了一個未知錯誤。',
 'backend-fail-contenttype' => '無法確定檔案的內容類型以存儲於“$1”。',
 'backend-fail-batchsize' => '存儲後端被給予了$1次檔𣗈 {{PLURAL:$1|操作|操作}} ;限制是$2次{{PLURAL:$2|操作|操作}}。',
+'backend-fail-usable' => '由於沒有足夠的權限或缺少路徑/容器,所以無法寫入檔𣗈 $1 。',
 
 # File journal errors
 'filejournal-fail-dbconnect' => '無法連接到後端存儲的日誌資料庫" $1 "。',
@@ -2092,9 +2100,9 @@ Template:消除歧義',
 'emailuser' => 'E-mail該用戶',
 'emailpage' => 'E-mail用戶',
 'emailpagetext' => '您可以用下面的表格去寄一封電郵給這位用戶。
-您在[[Special:Preferences|您參數設置]]中所輸入的e-mail地址將出現在郵件「發件人」一欄中,這樣該用戶就可以回覆您。',
+您在[[Special:Preferences|您的參數設置]]中所輸入的電子郵件地址將出現在郵件「發件人」一欄中,這樣該用戶就可以回覆您。',
 'usermailererror' => '目標郵件地址返回錯誤:',
-'defemailsubject' => '{{SITENAME}}用戶 $1 發送電子郵件',
+'defemailsubject' => '{{SITENAME}}來自用戶“$1”的電子郵件',
 'usermaildisabled' => '用戶電郵已停用',
 'usermaildisabledtext' => '您不可以發送電郵到這個wiki上的其他用戶',
 'noemailtitle' => '無e-mail地址',
index 2fa637a..4c72080 100644 (file)
--- a/load.php
+++ b/load.php
@@ -20,7 +20,6 @@
  * @file
  * @author Roan Kattouw
  * @author Trevor Parscal
- *
  */
 
 // Bail if PHP is too low
index 529e7f7..728530f 100644 (file)
--- a/load.php5
+++ b/load.php5
@@ -1 +1,24 @@
-<?php require './load.php';
\ No newline at end of file
+<?php
+/**
+ * Version of load.php to used in web server requiring .php5 extension
+ * to execute scripts with PHP5 egine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+require './load.php';
index 114297c..6c07858 100644 (file)
@@ -16,7 +16,7 @@ CREATE TABLE /*_*/filejournal (
   fj_new_sha1 varbinary(32) NOT NULL default '',
   -- Timestamp of the batch operation
   fj_timestamp varbinary(14) NOT NULL default ''
-);
+) /*$wgDBTableOptions*/;
 
 CREATE INDEX /*i*/fj_batch_id ON /*_*/filejournal (fj_batch_uuid);
 CREATE INDEX /*i*/fj_timestamp ON /*_*/filejournal (fj_timestamp);
index 6a99554..42354ea 100644 (file)
@@ -123,6 +123,7 @@ $wgIgnoredMessages = array(
        'pubmedurl',
        'randompage-url',
        'recentchanges-url',
+       'recentchangestext',
        'revision-info-current',
        'revision-nav',
        'rfcurl',
index c55b83d..f2823a0 100644 (file)
@@ -948,6 +948,7 @@ $wgMessageStructure = array(
                'prefs-beta',
                'prefs-datetime',
                'prefs-labs',
+               'prefs-user-pages',
                'prefs-personal',
                'prefs-rc',
                'prefs-watchlist',
@@ -1213,6 +1214,7 @@ $wgMessageStructure = array(
                'recentchanges',
                'recentchanges-url',
                'recentchanges-legend',
+               'recentchanges-summary',
                'recentchangestext',
                'recentchanges-feed-description',
                'recentchanges-label-newpage',
@@ -1388,7 +1390,8 @@ $wgMessageStructure = array(
                'backend-fail-connect',
                'backend-fail-internal',
                'backend-fail-contenttype',
-               'backend-fail-batchsize'
+               'backend-fail-batchsize',
+               'backend-fail-usable'
        ),
 
        'filejournal-errors' => array(
@@ -1450,7 +1453,6 @@ $wgMessageStructure = array(
                'http-curl-error',
                'http-host-unreachable',
                'http-bad-status',
-               'http-truncated-body',
        ),
 
        'upload-curl-errors' => array(
index 54ff247..0847edf 100644 (file)
@@ -50,12 +50,13 @@ class PopulateImageSha1 extends LoggedUpdateMaintenance {
 
        public function doDBUpdates() {
                $method = $this->getOption( 'method', 'normal' );
-               $file = $this->getOption( 'file' );
+               $file = $this->getOption( 'file', '' );
                $force = $this->getOption( 'force' );
+               $isRegen = ( $force || $file != '' ); // forced recalculation?
 
                $t = -microtime( true );
                $dbw = wfGetDB( DB_MASTER );
-               if ( $file ) {
+               if ( $file != '' ) {
                        $res = $dbw->select(
                                'image',
                                array( 'img_name' ),
@@ -82,10 +83,10 @@ class PopulateImageSha1 extends LoggedUpdateMaintenance {
                $oldImageTable = $dbw->tableName( 'oldimage' );
 
                if ( $method == 'pipe' ) {
-                       // Opening a pipe allows the SHA-1 operation to be done in parallel 
+                       // Opening a pipe allows the SHA-1 operation to be done in parallel
                        // with the database write operation, because the writes are queued
-                       // in the pipe buffer. This can improve performance by up to a 
-                       // factor of 2. 
+                       // in the pipe buffer. This can improve performance by up to a
+                       // factor of 2.
                        global $wgDBuser, $wgDBserver, $wgDBpassword, $wgDBname;
                        $cmd = 'mysql -u' . wfEscapeShellArg( $wgDBuser ) .
                                ' -h' . wfEscapeShellArg( $wgDBserver ) .
@@ -109,25 +110,37 @@ class PopulateImageSha1 extends LoggedUpdateMaintenance {
                        // Upgrade the current file version...
                        $sha1 = $file->getRepo()->getFileSha1( $file->getPath() );
                        if ( strval( $sha1 ) !== '' ) { // file on disk and hashed properly
-                               $sql = "UPDATE $imageTable SET img_sha1=" . $dbw->addQuotes( $sha1 ) .
-                                       " WHERE img_name=" . $dbw->addQuotes( $file->getName() );
-                               if ( $method == 'pipe' ) {
-                                       fwrite( $pipe, "$sql;\n" );
+                               if ( $isRegen && $file->getSha1() !== $sha1 ) {
+                                       // The population was probably done already. If the old SHA1
+                                       // does not match, then both fix the SHA1 and the metadata.
+                                       $file->upgradeRow();
                                } else {
-                                       $dbw->query( $sql, __METHOD__ );
+                                       $sql = "UPDATE $imageTable SET img_sha1=" . $dbw->addQuotes( $sha1 ) .
+                                               " WHERE img_name=" . $dbw->addQuotes( $file->getName() );
+                                       if ( $method == 'pipe' ) {
+                                               fwrite( $pipe, "$sql;\n" );
+                                       } else {
+                                               $dbw->query( $sql, __METHOD__ );
+                                       }
                                }
                        }
                        // Upgrade the old file versions...
                        foreach ( $file->getHistory() as $oldFile ) {
                                $sha1 = $oldFile->getRepo()->getFileSha1( $oldFile->getPath() );
                                if ( strval( $sha1 ) !== '' ) { // file on disk and hashed properly
-                                       $sql = "UPDATE $oldImageTable SET oi_sha1=" . $dbw->addQuotes( $sha1 ) .
-                                               " WHERE (oi_name=" . $dbw->addQuotes( $oldFile->getName() ) . " AND" .
-                                               " oi_archive_name=" . $dbw->addQuotes( $oldFile->getArchiveName() ) . ")";
-                                       if ( $method == 'pipe' ) {
-                                               fwrite( $pipe, "$sql;\n" );
+                                       if ( $isRegen && $oldFile->getSha1() !== $sha1 ) {
+                                               // The population was probably done already. If the old SHA1
+                                               // does not match, then both fix the SHA1 and the metadata.
+                                               $oldFile->upgradeRow();
                                        } else {
-                                               $dbw->query( $sql, __METHOD__ );
+                                               $sql = "UPDATE $oldImageTable SET oi_sha1=" . $dbw->addQuotes( $sha1 ) .
+                                                       " WHERE (oi_name=" . $dbw->addQuotes( $oldFile->getName() ) . " AND" .
+                                                       " oi_archive_name=" . $dbw->addQuotes( $oldFile->getArchiveName() ) . ")";
+                                               if ( $method == 'pipe' ) {
+                                                       fwrite( $pipe, "$sql;\n" );
+                                               } else {
+                                                       $dbw->query( $sql, __METHOD__ );
+                                               }
                                        }
                                }
                        }
index 6125fc0..d8ff749 100644 (file)
@@ -102,7 +102,8 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance {
        protected function doSha1LegacyUpdates() {
                $count = 0;
                $db = $this->getDB( DB_MASTER );
-               $res = $db->select( 'archive', '*', array( 'ar_rev_id IS NULL' ), __METHOD__ );
+               $res = $db->select( 'archive', '*',
+                       array( 'ar_rev_id IS NULL', 'ar_sha1' => '' ), __METHOD__ );
 
                $updateSize = 0;
                $db->begin( __METHOD__ );
@@ -145,7 +146,7 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance {
                        $db->update( $table,
                                array( "{$prefix}_sha1" => Revision::base36Sha1( $text ) ),
                                array( $idCol => $row->$idCol ),
-                               __METHOD__ 
+                               __METHOD__
                        );
                        return true;
                }
@@ -157,7 +158,11 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance {
         */
        protected function upgradeLegacyArchiveRow( $row ) {
                $db = $this->getDB( DB_MASTER );
-               $rev = Revision::newFromArchiveRow( $row );
+               try {
+                       $rev = Revision::newFromArchiveRow( $row );
+               } catch ( MWException $e ) {
+                       return false; // bug 22624?
+               }
                $text = $rev->getRawText();
                if ( !is_string( $text ) ) {
                        # This should not happen, but sometimes does (bug 20757)
@@ -174,7 +179,7 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance {
                                        'ar_timestamp' => $row->ar_timestamp,
                                        'ar_len'       => $row->ar_len // extra sanity
                                ),
-                               __METHOD__ 
+                               __METHOD__
                        );
                        return true;
                }
diff --git a/maintenance/syncFileBackend.php b/maintenance/syncFileBackend.php
new file mode 100644 (file)
index 0000000..0d5c9de
--- /dev/null
@@ -0,0 +1,236 @@
+<?php
+/**
+ * Sync one file backend to another based on the journal of later.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @ingroup Maintenance
+ */
+
+require_once( dirname( __FILE__ ) . '/Maintenance.php' );
+
+class SyncFileBackend extends Maintenance {
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription = "Sync one file backend with another using the journal";
+               $this->addOption( 'src', 'Name of backend to sync from', true, true );
+               $this->addOption( 'dst', 'Name of destination backend to sync', true, true );
+               $this->addOption( 'start', 'Starting journal ID', false, true );
+               $this->addOption( 'end', 'Ending journal ID', false, true );
+               $this->addOption( 'posdir', 'Directory to read/record journal positions', false, true );
+               $this->addOption( 'verbose', 'Verbose mode', false, false, 'v' );
+               $this->setBatchSize( 50 );
+       }
+
+       public function execute() {
+               $src = FileBackendGroup::singleton()->get( $this->getOption( 'src' ) );
+               $dst = FileBackendGroup::singleton()->get( $this->getOption( 'dst' ) );
+
+               $posFile = $this->getOption( 'posdir' )
+                       ? $this->getOption( 'posdir' ) . '/' . wfWikiID()
+                       : false;
+
+               $start = $this->getOption( 'start', 0 );
+               if ( !$start && $posFile ) {
+                       $start = is_file( $posFile )
+                               ? (int)trim( file_get_contents( $posFile ) )
+                               : 0;
+                       ++$start; // we already did this ID, start with the next one
+                       $startFromPosFile = true;
+               } else {
+                       $startFromPosFile = false;
+               }
+               $end = $this->getOption( 'end', INF );
+
+               $this->output( "Synchronizing backend '{$dst->getName()}' to '{$src->getName()}'...\n" );
+               $this->output( "Starting journal position is $start.\n" );
+               if ( is_finite( $end ) ) {
+                       $this->output( "Ending journal position is $end.\n" );
+               }
+
+               // Actually sync the dest backend with the reference backend
+               $lastOKPos = $this->syncBackends( $src, $dst, $start, $end );
+
+               // Update the sync position file
+               if ( $startFromPosFile && $lastOKPos >= $start ) { // successfully advanced
+                       file_put_contents( $posFile, $lastOKPos, LOCK_EX );
+                       $this->output( "Updated journal position file.\n" );
+               }
+
+               if ( $lastOKPos === false ) {
+                       if ( !$start ) {
+                               $this->output( "No journal entries found.\n" );
+                       } else {
+                               $this->output( "No new journal entries found.\n" );
+                       }
+               } else {
+                       $this->output( "Stopped synchronization at journal position $lastOKPos.\n" );
+               }
+
+               if ( $this->isQuiet() ) {
+                       print $lastOKPos; // give a single machine-readable number
+               }
+       }
+
+       /**
+        * Sync $dst backend to $src backend based on the $src logs given after $start.
+        * Returns the journal entry ID this advanced to and handled (inclusive).
+        *
+        * @param $src FileBackend
+        * @param $dst FileBackend
+        * @param $start integer Starting journal position
+        * @param $end integer Starting journal position
+        * @return integer|false Journal entry ID or false if there are none
+        */
+       protected function syncBackends( FileBackend $src, FileBackend $dst, $start, $end ) {
+               $lastOKPos = 0; // failed
+               $first = true; // first batch
+
+               if ( $start > $end ) { // sanity
+                       $this->error( "Error: given starting ID greater than ending ID.", 1 );
+               }
+
+               do {
+                       $limit = min( $this->mBatchSize, $end - $start + 1 ); // don't go pass ending ID
+                       $this->output( "Doing id $start to " . ( $start + $limit - 1 ) . "...\n" );
+
+                       $entries = $src->getJournal()->getChangeEntries( $start, $limit, $next );
+                       $start = $next; // start where we left off next time
+                       if ( $first && !count( $entries ) ) {
+                               return false; // nothing to do
+                       }
+                       $first = false;
+
+                       $lastPosInBatch = 0;
+                       $pathsInBatch = array(); // changed paths
+                       foreach ( $entries as $entry ) {
+                               if ( $entry['op'] !== 'null' ) { // null ops are just for reference
+                                       $pathsInBatch[$entry['path']] = 1; // remove duplicates
+                               }
+                               $lastPosInBatch = $entry['id'];
+                       }
+
+                       $status = $this->syncFileBatch( array_keys( $pathsInBatch ), $src, $dst );
+                       if ( $status->isOK() ) {
+                               $lastOKPos = max( $lastOKPos, $lastPosInBatch );
+                       } else {
+                               $this->output( print_r( $status->getErrorsArray(), true ) );
+                               break; // no gaps; everything up to $lastPos must be OK
+                       }
+
+                       if ( !$start ) {
+                               $this->output( "End of journal entries.\n" );
+                       }
+               } while ( $start && $start <= $end );
+
+               return $lastOKPos;
+       }
+
+       /**
+        * Sync particular files of backend $src to the corresponding $dst backend files
+        *
+        * @param $paths Array
+        * @param $src FileBackend
+        * @param $dst FileBackend
+        * @return Status
+        */
+       protected function syncFileBatch( array $paths, FileBackend $src, FileBackend $dst ) {
+               $status = Status::newGood();
+               if ( !count( $paths ) ) {
+                       return $status; // nothing to do
+               }
+
+               // Source: convert internal backend names (FileBackendMultiWrite) to the public one
+               $sPaths = $this->replaceNamePaths( $paths, $src );
+               // Destination: get corresponding path name
+               $dPaths = $this->replaceNamePaths( $paths, $dst );
+
+               // Lock the live backend paths from modification
+               $sLock = $src->getScopedFileLocks( $sPaths, LockManager::LOCK_UW, $status );
+               $eLock = $dst->getScopedFileLocks( $dPaths, LockManager::LOCK_EX, $status );
+               if ( !$status->isOK() ) {
+                       return $status;
+               }
+
+               $ops = array();
+               $fsFiles = array();
+               foreach ( $sPaths as $i => $sPath ) {
+                       $dPath = $dPaths[$i]; // destination
+                       $sExists = $src->fileExists( array( 'src' => $sPath, 'latest' => 1 ) );
+                       if ( $sExists === true ) { // exists in source
+                               if ( $this->filesAreSame( $src, $dst, $sPath, $dPath ) ) {
+                                       continue; // avoid local copies for non-FS backends
+                               }
+                               // Note: getLocalReference() is fast for FS backends
+                               $fsFile = $src->getLocalReference( array( 'src' => $sPath, 'latest' => 1 ) );
+                               if ( !$fsFile ) {
+                                       $this->error( "Unable to sync '$dPath': could not get local copy." );
+                                       $status->fatal( 'backend-fail-internal', $src->getName() );
+                                       return $status;
+                               }
+                               $fsFiles[] = $fsFile; // keep TempFSFile objects alive as needed
+                               // Note: prepare() is usually fast for key/value backends
+                               $status->merge( $dst->prepare( array( 'dir' => dirname( $dPath ) ) ) );
+                               if ( !$status->isOK() ) {
+                                       return $status;
+                               }
+                               $ops[] = array( 'op' => 'store',
+                                       'src' => $fsFile->getPath(), 'dst' => $dPath, 'overwrite' => 1 );
+                       } elseif ( $sExists === false ) { // does not exist in source
+                               $ops[] = array( 'op' => 'delete', 'src' => $dPath, 'ignoreMissingSource' => 1 );
+                       } else { // error
+                               $this->error( "Unable to sync '$dPath': could not stat file." );
+                               $status->fatal( 'backend-fail-internal', $src->getName() );
+                               return $status;
+                       }
+               }
+
+               $status->merge( $dst->doOperations( $ops,
+                       array( 'nonLocking' => 1, 'nonJournaled' => 1 ) ) );
+               if ( $status->isOK() && $this->getOption( 'verbose' ) ) {
+                       $this->output( "Synchronized these file(s):\n" . implode( "\n", $dPaths ) . "\n" );
+               }
+
+               return $status;
+       }
+
+       /**
+        * Substitute the backend name of storage paths with that of a given one
+        *
+        * @param $paths Array|string List of paths or single string path
+        * @return Array|string
+        */
+       protected function replaceNamePaths( $paths, FileBackend $backend ) {
+               return preg_replace(
+                       '!^mwstore://([^/]+)!',
+                       StringUtils::escapeRegexReplacement( "mwstore://" . $backend->getName() ),
+                       $paths // string or array
+               );
+       }
+
+       protected function filesAreSame( FileBackend $src, FileBackend $dst, $sPath, $dPath ) {
+               return (
+                       ( $src->getFileSize( array( 'src' => $sPath ) )
+                               === $dst->getFileSize( array( 'src' => $dPath ) ) // short-circuit
+                       ) && ( $src->getFileSha1Base36( array( 'src' => $sPath ) )
+                               === $dst->getFileSha1Base36( array( 'src' => $dPath ) )
+                       )
+               );
+       }
+}
+
+$maintClass = "SyncFileBackend";
+require_once( RUN_MAINTENANCE_IF_MAIN );
index 85ec580..a5e48fa 100644 (file)
@@ -1,7 +1,21 @@
 <?php
-
 /**
- * Generate an OpenSearch description file
+ * Generate an OpenSearch description file.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
  */
index 3f2f287..16d09ea 100644 (file)
@@ -1 +1,24 @@
-<?php require './opensearch_desc.php'; 
\ No newline at end of file
+<?php
+/**
+ * Version of opensearch_desc.php to used in web server requiring .php5 extension
+ * to execute scripts with PHP5 egine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+require './opensearch_desc.php'; 
index eb15c6b..fde960e 100644 (file)
@@ -1,11 +1,26 @@
 <?php
-
 /**
  * Script that redirects to the article passed in the "wpDropdown" parameter.
  * This is used by the nostalgia skin for the special pages drop-down
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
+
 if ( isset( $_SERVER['MW_COMPILED'] ) ) {
        require ( 'phase3/includes/WebStart.php' );
 } else {
index 1eaa3d0..ae29c4c 100644 (file)
@@ -1 +1,24 @@
-<?php require './redirect.php';
\ No newline at end of file
+<?php
+/**
+ * Version of redirect.php to used in web server requiring .php5 extension
+ * to execute scripts with PHP5 egine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+require './redirect.php';
index 3c0d7e5..45df39a 100644 (file)
@@ -8,7 +8,7 @@
 
        /**
         * Enforces a byte limit to a textbox, so that UTF-8 entries are counted as well, when, for example,
-        * a databae field has a byte limit rather than a character limit.
+        * a database field has a byte limit rather than a character limit.
         * Plugin rationale: Browser has native maxlength for number of characters, this plugin exists to
         * limit number of bytes instead.
         *
index 92610b9..4c20fad 100644 (file)
                 * Get address to a script in the wiki root.
                 * For index.php use mw.config.get( 'wgScript' )
                 *
+                * @since 1.18
                 * @param str string Name of script (eg. 'api'), defaults to 'index'
                 * @return string Address to script (eg. '/w/api.php' )
                 */
index ddb84c3..bcdbe8c 100644 (file)
@@ -640,6 +640,17 @@ Definition and unordered list using wiki syntax nested in unordered list using h
 
 !! end
 
+!! test
+Definition list with empty definition and following paragraph
+!! input
+; term:
+Paragraph text
+!! result
+<dl><dt> term</dt><dd>
+</dd></dl>
+<p>Paragraph text
+</p>
+!! end
 
 ###
 ### External links
@@ -6064,8 +6075,6 @@ Special page transclusion
 !! input
 {{Special:Prefixindex/Xyzzyx}}
 !! result
-<p><br />
-</p>
 <table border="0" id="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
 
 !! end
@@ -6077,11 +6086,7 @@ Special page transclusion twice (bug 5021)
 {{Special:Prefixindex/Xyzzyx}}
 {{Special:Prefixindex/Xyzzyx}}
 !! result
-<p><br />
-</p>
 <table border="0" id="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
-<p><br />
-</p>
 <table border="0" id="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
 
 !! end
index e38fa7e..f50b2fe 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 /**
  * Tests for IP validity functions. Ported from /t/inc/IP.t by avar.
+ * @group IP
  */
 
 class IPTest extends MediaWikiTestCase {
@@ -505,4 +506,37 @@ class IPTest extends MediaWikiTestCase {
                        array( '0:c1:A2:3:4:5:c6:7', '0:C1:A2:3:4:5:C6:7', 'IPv6 non range' ),
                );
        }
+
+       /**
+        * Test for IP::prettifyIP()
+        * @dataProvider provideIPsToPrettify
+        */
+       function testPrettifyIP( $ip, $prettified ) {
+               $this->assertEquals( $prettified, IP::prettifyIP( $ip ), "Prettify of $ip" );
+       }
+
+       /**
+        * Provider for IP::testPrettifyIP()
+        */
+       function provideIPsToPrettify() {
+               return array(
+                       array( '0:0:0:0:0:0:0:0', '::' ),
+                       array( '0:0:0::0:0:0', '::' ),
+                       array( '0:0:0:1:0:0:0:0', '0:0:0:1::' ),
+                       array( '0:0::f', '::f' ),
+                       array( '0::0:0:0:33:fef:b', '::33:fef:b' ),
+                       array( '3f:535:0:0:0:0:e:fbb', '3f:535::e:fbb' ),
+                       array( '0:0:fef:0:0:0:e:fbb', '0:0:fef::e:fbb' ),
+                       array( 'abbc:2004::0:0:0:0', 'abbc:2004::' ),
+                       array( 'cebc:2004:f:0:0:0:0:0', 'cebc:2004:f::' ),
+                       array( '0:0:0:0:0:0:0:0/16', '::/16' ),
+                       array( '0:0:0::0:0:0/64', '::/64' ),
+                       array( '0:0::f/52', '::f/52' ),
+                       array( '::0:0:33:fef:b/52', '::33:fef:b/52' ),
+                       array( '3f:535:0:0:0:0:e:fbb/48', '3f:535::e:fbb/48' ),
+                       array( '0:0:fef:0:0:0:e:fbb/96', '0:0:fef::e:fbb/96' ),
+                       array( 'abbc:2004:0:0::0:0/40', 'abbc:2004::/40' ),
+                       array( 'aebc:2004:f:0:0:0:0:0/80', 'aebc:2004:f::/80' ),
+               );
+       }
 }
index e72408f..1fc0b4b 100644 (file)
@@ -1,14 +1,22 @@
 <?php
 
 class WebRequestTest extends MediaWikiTestCase {
+       static $oldServer;
+
+       function setUp() {
+               self::$oldServer = $_SERVER;
+       }
+
+       function tearDown() {
+               $_SERVER = self::$oldServer;
+       }
+
        /**
         * @dataProvider provideDetectServer
         */
        function testDetectServer( $expected, $input, $description ) {
-               $oldServer = $_SERVER;
                $_SERVER = $input;
                $result = WebRequest::detectServer();
-               $_SERVER = $oldServer;
                $this->assertEquals( $expected, $result, $description );
        }
 
@@ -91,13 +99,11 @@ class WebRequestTest extends MediaWikiTestCase {
         */
        function testGetIP( $expected, $input, $squid, $private, $description ) {
                global $wgSquidServersNoPurge, $wgUsePrivateIPs;
-               $oldServer = $_SERVER;
                $_SERVER = $input;
                $wgSquidServersNoPurge = $squid;
                $wgUsePrivateIPs = $private;
                $request = new WebRequest();
                $result = $request->getIP();
-               $_SERVER = $oldServer;
                $this->assertEquals( $expected, $result, $description );
        }
 
@@ -182,4 +188,29 @@ class WebRequestTest extends MediaWikiTestCase {
                # Next call throw an exception about lacking an IP
                $request->getIP();
        }
+
+       function languageProvider() {
+               return array(
+                       array( '', array(), 'Empty Accept-Language header' ),
+                       array( 'en', array( 'en' => 1 ), 'One language' ),
+                       array( 'en, ar', array( 'en' => 1, 'ar' => 1 ), 'Two languages listed in appearance order.' ),
+                       array( 'zh-cn,zh-tw', array( 'zh-cn' => 1, 'zh-tw' => 1 ), 'Two equally prefered languages, listed in appearance order per rfc3282. Checks c9119' ),
+                       array( 'es, en; q=0.5', array( 'es' => 1, 'en' => '0.5' ), 'Spanish as first language and English and second' ),
+                       array( 'en; q=0.5, es', array( 'es' => 1, 'en' => '0.5' ), 'Less prefered language first' ),
+                       array( 'fr, en; q=0.5, es', array( 'fr' => 1, 'es' => 1, 'en' => '0.5' ), 'Three languages' ),
+                       array( 'en; q=0.5, es', array( 'es' => 1, 'en' => '0.5' ), 'Two languages' ),
+                       array( 'en, zh;q=0', array( 'en' => 1 ), "It's Chinese to me" ),
+                       array( 'es; q=1, pt;q=0.7, it; q=0.6, de; q=0.1, ru;q=0', array( 'es' => '1', 'pt' => '0.7', 'it' => '0.6', 'de' => '0.1' ), 'Preference for romance languages' ),
+                       array( 'en-gb, en-us; q=1', array( 'en-gb' => 1, 'en-us' => '1' ), 'Two equally prefered English variants' ),
+               );
+       }
+
+       /**
+        * @dataProvider languageProvider
+        */
+       function testAcceptLang($acceptLanguageHeader, $expectedLanguages, $description) {
+               $_SERVER = array( 'HTTP_ACCEPT_LANGUAGE' => $acceptLanguageHeader );
+               $request = new WebRequest();
+               $this->assertSame( $request->getAcceptLang(), $expectedLanguages, $description);
+       }
 }
index cdf6fcd..e2d3605 100644 (file)
@@ -5,7 +5,7 @@
 * ^--- important, causes temporary tables to be used instead of the real database
 **/
 
-class WikiPageTest extends MediaWikiTestCase {
+class WikiPageTest extends MediaWikiLangTestCase {
 
        var $pages_to_delete;
 
@@ -31,6 +31,7 @@ class WikiPageTest extends MediaWikiTestCase {
        }
        
        public function setUp() {
+               parent::setUp();
                $this->pages_to_delete = array();
 
                LinkCache::singleton()->clear(); # avoid cached redirect status, etc
@@ -48,6 +49,7 @@ class WikiPageTest extends MediaWikiTestCase {
                                // fail silently
                        }
                }
+               parent::tearDown();
        }
 
        /**
@@ -244,6 +246,21 @@ class WikiPageTest extends MediaWikiTestCase {
                $this->assertEquals( 0, $n, 'pagelinks should contain no more links from the page' );
        }
 
+       public function testDoDeleteUpdates() {
+               $page = $this->createPage( "WikiPageTest_testDoDeleteArticle", "[[original text]] foo" );
+               $id = $page->getId();
+
+               $page->doDeleteUpdates( $id );
+
+               # ------------------------
+               $dbr = wfGetDB( DB_SLAVE );
+               $res = $dbr->select( 'pagelinks', '*', array( 'pl_from' => $id ) );
+               $n = $res->numRows();
+               $res->free();
+
+               $this->assertEquals( 0, $n, 'pagelinks should contain no more links from the page' );
+       }
+
        public function testGetRevision() {
                $page = $this->newPage( "WikiPageTest_testGetRevision" );
 
index ec2fbac..1380ef2 100644 (file)
@@ -10,7 +10,6 @@
 class FileBackendTest extends MediaWikiTestCase {
        private $backend, $multiBackend;
        private $filesToPrune = array();
-       private $dirsToPrune = array();
        private static $backendToUse;
 
        function setUp() {
@@ -655,6 +654,54 @@ class FileBackendTest extends MediaWikiTestCase {
                return $cases;
        }
 
+       public function testDoQuickOperations() {
+               $this->backend = $this->singleBackend;
+               $this->doTestDoQuickOperations();
+               $this->tearDownFiles();
+
+               $this->backend = $this->multiBackend;
+               $this->doTestDoQuickOperations();
+               $this->tearDownFiles();
+       }
+
+       private function doTestDoQuickOperations() {
+               $backendName = $this->backendClass();
+
+               $base = $this->baseStorePath();
+               $files = array(
+                       "$base/unittest-cont1/fileA.a",
+                       "$base/unittest-cont1/fileB.a",
+                       "$base/unittest-cont1/fileC.a"
+               );
+               $ops = array();
+               $purgeOps = array();
+               foreach ( $files as $path ) {
+                       $status = $this->prepare( array( 'dir' => dirname( $path ) ) );
+                       $this->assertGoodStatus( $status,
+                               "Preparing $path succeeded without warnings ($backendName)." );
+                       $ops[] = array( 'op' => 'create', 'dst' => $path, 'content' => mt_rand(0,50000) );
+                       $purgeOps[] = array( 'op' => 'delete', 'src' => $path );
+               }
+               $purgeOps[] = array( 'op' => 'null' );
+               $status = $this->backend->doQuickOperations( $ops );
+               $this->assertGoodStatus( $status,
+                       "Creation of source files succeeded ($backendName)." );
+
+               foreach ( $files as $file ) {
+                       $this->assertTrue( $this->backend->fileExists( array( 'src' => $file ) ),
+                               "File $file exists." );
+               }
+
+               $status = $this->backend->doQuickOperations( $purgeOps );
+               $this->assertGoodStatus( $status,
+                       "Quick deletion of source files succeeded ($backendName)." );
+
+               foreach ( $files as $file ) {
+                       $this->assertFalse( $this->backend->fileExists( array( 'src' => $file ) ),
+                               "File $file purged." );
+               }
+       }
+
        /**
         * @dataProvider provider_testConcatenate
         */
@@ -806,7 +853,7 @@ class FileBackendTest extends MediaWikiTestCase {
 
                if ( $alreadyExists ) {
                        $this->prepare( array( 'dir' => dirname( $path ) ) );
-                       $status = $this->backend->create( array( 'dst' => $path, 'content' => $content ) );
+                       $status = $this->create( array( 'dst' => $path, 'content' => $content ) );
                        $this->assertGoodStatus( $status,
                                "Creation of file at $path succeeded ($backendName)." );
 
@@ -816,14 +863,14 @@ class FileBackendTest extends MediaWikiTestCase {
 
                        $this->assertEquals( strlen( $content ), $size,
                                "Correct file size of '$path'" );
-                       $this->assertTrue( abs( time() - wfTimestamp( TS_UNIX, $time ) ) < 5,
+                       $this->assertTrue( abs( time() - wfTimestamp( TS_UNIX, $time ) ) < 10,
                                "Correct file timestamp of '$path'" );
 
                        $size = $stat['size'];
                        $time = $stat['mtime'];
                        $this->assertEquals( strlen( $content ), $size,
                                "Correct file size of '$path'" );
-                       $this->assertTrue( abs( time() - wfTimestamp( TS_UNIX, $time ) ) < 5,
+                       $this->assertTrue( abs( time() - wfTimestamp( TS_UNIX, $time ) ) < 10,
                                "Correct file timestamp of '$path'" );
                } else {
                        $size = $this->backend->getFileSize( array( 'src' => $path ) );
@@ -955,8 +1002,7 @@ class FileBackendTest extends MediaWikiTestCase {
 
                $this->prepare( array( 'dir' => dirname( $source ) ) );
 
-               $status = $this->backend->doOperation(
-                       array( 'op' => 'create', 'content' => $content, 'dst' => $source ) );
+               $status = $this->create( array( 'content' => $content, 'dst' => $source ) );
                $this->assertGoodStatus( $status,
                        "Creation of file at $source succeeded ($backendName)." );
 
@@ -1037,7 +1083,7 @@ class FileBackendTest extends MediaWikiTestCase {
                $this->tearDownFiles();
        }
 
-       function doTestRecursiveClean() {
+       private function doTestRecursiveClean() {
                $backendName = $this->backendClass();
 
                $base = $this->baseStorePath();
@@ -1125,11 +1171,11 @@ class FileBackendTest extends MediaWikiTestCase {
                $fileD = "$base/unittest-cont1/a/b/fileD.txt";
 
                $this->prepare( array( 'dir' => dirname( $fileA ) ) );
-               $this->backend->create( array( 'dst' => $fileA, 'content' => $fileAContents ) );
+               $this->create( array( 'dst' => $fileA, 'content' => $fileAContents ) );
                $this->prepare( array( 'dir' => dirname( $fileB ) ) );
-               $this->backend->create( array( 'dst' => $fileB, 'content' => $fileBContents ) );
+               $this->create( array( 'dst' => $fileB, 'content' => $fileBContents ) );
                $this->prepare( array( 'dir' => dirname( $fileC ) ) );
-               $this->backend->create( array( 'dst' => $fileC, 'content' => $fileCContents ) );
+               $this->create( array( 'dst' => $fileC, 'content' => $fileCContents ) );
                $this->prepare( array( 'dir' => dirname( $fileD ) ) );
 
                $status = $this->backend->doOperations( array(
@@ -1187,7 +1233,7 @@ class FileBackendTest extends MediaWikiTestCase {
        }
 
        // concurrency orientated
-       function doTestDoOperations2() {
+       private function doTestDoOperations2() {
                $base = $this->baseStorePath();
 
                $fileAContents = '3tqtmoeatmn4wg4qe-mg3qt3 tq';
@@ -1211,7 +1257,7 @@ class FileBackendTest extends MediaWikiTestCase {
                $fileD = "$base/unittest-cont1/a/b/fileD.txt";
 
                $this->prepare( array( 'dir' => dirname( $fileA ) ) );
-               $this->backend->create( array( 'dst' => $fileA, 'content' => $fileAContents ) );
+               $this->create( array( 'dst' => $fileA, 'content' => $fileAContents ) );
                $this->prepare( array( 'dir' => dirname( $fileB ) ) );
                $this->prepare( array( 'dir' => dirname( $fileC ) ) );
                $this->prepare( array( 'dir' => dirname( $fileD ) ) );
@@ -1273,7 +1319,7 @@ class FileBackendTest extends MediaWikiTestCase {
                        "Correct file SHA-1 of $fileC" );
        }
 
-       function doTestDoOperationsFailing() {
+       private function doTestDoOperationsFailing() {
                $base = $this->baseStorePath();
 
                $fileA = "$base/unittest-cont2/a/b/fileA.txt";
@@ -1285,11 +1331,11 @@ class FileBackendTest extends MediaWikiTestCase {
                $fileD = "$base/unittest-cont2/a/b/fileD.txt";
 
                $this->prepare( array( 'dir' => dirname( $fileA ) ) );
-               $this->backend->create( array( 'dst' => $fileA, 'content' => $fileAContents ) );
+               $this->create( array( 'dst' => $fileA, 'content' => $fileAContents ) );
                $this->prepare( array( 'dir' => dirname( $fileB ) ) );
-               $this->backend->create( array( 'dst' => $fileB, 'content' => $fileBContents ) );
+               $this->create( array( 'dst' => $fileB, 'content' => $fileBContents ) );
                $this->prepare( array( 'dir' => dirname( $fileC ) ) );
-               $this->backend->create( array( 'dst' => $fileC, 'content' => $fileCContents ) );
+               $this->create( array( 'dst' => $fileC, 'content' => $fileCContents ) );
 
                $status = $this->backend->doOperations( array(
                        array( 'op' => 'copy', 'src' => $fileA, 'dst' => $fileC, 'overwrite' => 1 ),
@@ -1374,7 +1420,7 @@ class FileBackendTest extends MediaWikiTestCase {
                        $this->prepare( array( 'dir' => dirname( $file ) ) );
                        $ops[] = array( 'op' => 'create', 'content' => 'xxy', 'dst' => $file );
                }
-               $status = $this->backend->doOperations( $ops );
+               $status = $this->backend->doQuickOperations( $ops );
                $this->assertGoodStatus( $status,
                        "Creation of files succeeded ($backendName)." );
                $this->assertEquals( true, $status->isOK(),
@@ -1527,7 +1573,7 @@ class FileBackendTest extends MediaWikiTestCase {
                        $this->prepare( array( 'dir' => dirname( $file ) ) );
                        $ops[] = array( 'op' => 'create', 'content' => 'xxy', 'dst' => $file );
                }
-               $status = $this->backend->doOperations( $ops );
+               $status = $this->backend->doQuickOperations( $ops );
                $this->assertGoodStatus( $status,
                        "Creation of files succeeded ($backendName)." );
                $this->assertEquals( true, $status->isOK(),
@@ -1724,10 +1770,15 @@ class FileBackendTest extends MediaWikiTestCase {
 
        // test helper wrapper for backend prepare() function
        private function prepare( array $params ) {
-               $this->dirsToPrune[] = $params['dir'];
                return $this->backend->prepare( $params );
        }
 
+       // test helper wrapper for backend prepare() function
+       private function create( array $params ) {
+               $params['op'] = 'create';
+               return $this->backend->doQuickOperations( array( $params ) );
+       }
+
        function tearDownFiles() {
                foreach ( $this->filesToPrune as $file ) {
                        @unlink( $file );
@@ -1736,10 +1787,7 @@ class FileBackendTest extends MediaWikiTestCase {
                foreach ( $containers as $container ) {
                        $this->deleteFiles( $container );
                }
-               foreach ( $this->dirsToPrune as $dir ) {
-                       $this->recursiveClean( $dir );
-               }
-               $this->filesToPrune = $this->dirsToPrune = array();
+               $this->filesToPrune = array();
        }
 
        private function deleteFiles( $container ) {
@@ -1751,10 +1799,7 @@ class FileBackendTest extends MediaWikiTestCase {
                                        array( 'force' => 1, 'nonLocking' => 1 ) );
                        }
                }
-       }
-
-       private function recursiveClean( $dir ) {
-               $this->backend->clean( array( 'dir' => $dir, 'recursive' => 1 ) );
+               $this->backend->clean( array( 'dir' => "$base/$container", 'recursive' => 1 ) );
        }
 
        function assertGoodStatus( $status, $msg ) {
index 6855581..50d3754 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -1,11 +1,26 @@
 <?php
-
 /**
  * PHP script to stream out an image thumbnail.
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  * @ingroup Media
  */
+
 define( 'MW_NO_OUTPUT_COMPRESSION', 1 );
 if ( isset( $_SERVER['MW_COMPILED'] ) ) {
        require( 'core/includes/WebStart.php' );
index d96ad70..0c9b702 100644 (file)
@@ -1 +1,25 @@
-<?php require './thumb.php'; 
\ No newline at end of file
+<?php
+/**
+ * Version of thumb.php to used in web server requiring .php5 extension
+ * to execute scripts with PHP5 egine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Media
+ */
+
+require './thumb.php'; 
index 35a855f..abc71dd 100644 (file)
@@ -1,6 +1,27 @@
 <?php
+/**
+ * PHP script to be used as 404 handler to create and stream out a
+ * not yet existing image thumbnail.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Media
+ */
 
-# Valid web server entry point
 define( 'THUMB_HANDLER', true );
 
 # Execute thumb.php, having set THUMB_HANDLER so that
index 9090b01..20d681b 100644 (file)
@@ -1 +1,25 @@
-<?php require './thumb_handler.php';
+<?php
+/**
+ * Version of thumb_handler.php to used in web server requiring .php5 extension
+ * to execute scripts with PHP5 egine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Media
+ */
+
+require './thumb_handler.php';